所以我有一个字符串:
var s = "foo\nbar\nbob";
我希望字符串变成:
"foo\\nbar\\nbob"
如何替换每个 \n
与 \\n
?
我尝试过使用一些 for 循环,但我无法弄清楚。
最佳答案
一个简单的.replace
就可以了 - 搜索\n
,并替换为\\n
:
var s = "foo\nbar\nbob";
console.log(
s.replace(/\n/g, '\\\n')
// ^^ double backslash needed to indicate single literal backslash
);
请注意,这会导致“一个反斜杠字符,后跟一个文字换行符” - 实际字符串中的一行中不会有两个反斜杠。使用 String.raw
可能不会那么困惑,它会逐字解释模板文字中的每个字符:
var s = "foo\nbar\nbob";
console.log(
s.replace(/\n/g, String.raw`\
`) // template literal contains one backslash, followed by one newline
);
关于javascript - 在 javascript 中用\\n 切换\n,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53218239/