一个node中的字符串问题
如图, 第一个,是用fs.readFileSync从文件中直接读取的内容,打印时是有格式的。 第二个,是用正则从文本中匹配到的,打印时带有换行符。 想请问一下大家,有没有办法将第二个的字符串转换成第一种呢。
5 回复
上下文代码?不行自己处理下
console.log($3.replace(/\\n/g, '\n'))
@magicdawn 这么说就有思路了。立马写了个函数来处理:
var escapeSpecialChars = function(str) {
return str.replace(/\\n/g, '\n')
.replace(/\\'/g, "\'")
.replace(/\\"/g, '\"')
.replace(/\\r/g, '\r')
.replace(/\\t/g, '\t')
.replace(/\\v/g, '\v')
.replace(/\\f/g, '\f');
};
不过还是有点不太理解这是为什么
理解吗,就是,你用字符串输出 \n 你得怎么写呢 console.log("\n"); // 输出字符 \n 换行符打印呢 是 console.log("\n");// 输出换行符
这就是为什么要替换呢
理解了,终端里是把’\n’识别为’\n’这个字符,直接写’\n’就是直接解析为换行。