Node.js正则替换异常:替换内容为文本\n而非实际换行
问题解决:替换后显示文本
\n而非实际换行 问题原因
- 替换目标定义错误:当前
replaceWith的写法生成的不是实际换行符,而是文本形式的\n(或无效值); - 匹配模式格式错误:
Search变量未用字符串包裹,-_-不是合法的JavaScript变量值,会导致正则构造失败。
修正后的代码
var replaceWith = '\n'; // 直接使用JavaScript原生换行符 var Search = '-_-'; // 匹配模式必须为字符串类型 var result = str.replace(new RegExp(Search, 'g'), replaceWith); fs.writeFile(jobPath, result, 'utf8', function (err) { if (err) return console.log(err); });
关键说明
- JavaScript中,
'\n'代表实际换行字符,写入文件时会被解析为换行;如果写成'\\n'才会显示为文本\n; - 使用
RegExp构造函数时,匹配模式必须是字符串(如'-_-'),不能直接写-_-,否则会触发语法错误。
效果验证
原文本:Publication-_-PublicationDate
替换后输出:
Publication PublicationDate
内容的提问来源于stack exchange,提问作者WDBonline
相关产品推荐
相关产品推荐

