如图, 第一个,是用fs.readFileSync从文件中直接读取的内容,打印时是有格式的。 第二个,是用正则从文本中匹配到的,打印时带有换行符。 想请问一下大家,有没有办法将第二个的字符串转换成第一种呢。
上下文代码?不行自己处理下
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’就是直接解析为换行。
CNode 社区为国内最专业的 Node.js 开源技术社区,致力于 Node.js 的技术研究。
上下文代码?不行自己处理下
@magicdawn 这么说就有思路了。立马写了个函数来处理:
不过还是有点不太理解这是为什么
理解吗,就是,你用字符串输出 \n 你得怎么写呢 console.log("\n"); // 输出字符 \n 换行符打印呢 是 console.log("\n");// 输出换行符
这就是为什么要替换呢
理解了,终端里是把’\n’识别为’\n’这个字符,直接写’\n’就是直接解析为换行。