我想转义一个\n字符,只知道它的索引。我并不是想替换字符本身,而是将转义字符“预先准备”到现有的\n中,有效地将其转义。
例如,在JavaScript:'\\' + '\n' === '\\\n'中
我要找的是\\n而不是\\\n。
重申一下,我不想完全取代\n。我很清楚'\n'.replace('\n', '\\n')会做我想要做的事情。我只是想把转义字符加到现有的换行符上。是否有理由让JS在文字反斜杠前加上一个反斜杠,而不逃避换行符呢?
'\\' + '\'' === "\\'"
我想我想知道为什么新行的行为会有所不同。谢谢你的想法!
发布于 2020-03-08 01:52:47
不可能为一个字符加上反斜杠来转义它。例如,对于Javascript的换行符'\n',这是一个字符串,包含一个字符代码: 10。
for (const char of '\n') {
console.log(char.charCodeAt());
}
实际上,这里没有n (或文字反斜杠)-- \n只是程序员使用和理解的引用换行符的惯例。如果字符串由文本反斜杠和文字n组成,则字符代码完全不同:字符代码为92 (用于反斜杠),字符代码为110 (用于n)。
for (const char of '\\n') {
console.log(char.charCodeAt());
}
唯一的选择是用反斜杠和n完全替换文字换行符(使用'\n'.replace('\n', '\\n') --或者,对于更一般的解决方案,可以构造一个文字字符及其转义序列的映射或对象)。
https://stackoverflow.com/questions/60583814
复制相似问题