用javascript中的单个反斜杠替换?

时间:2014-12-03 15:14:53

标签: javascript regex node.js replace latex

我正在使用Node.js创建一个乳胶模板系统。作为这个系统的一部分,我需要通过在反斜杠前面添加前缀来转义具有特殊含义的任何字符。

我读过双反斜杠用于插入文字反斜杠:

> var input = "hello & 100%"
> input.replace(/([&%$#_{}])/g, "\\$1")
'hello \\& 100\\%'

不。我也读过因为它在一个字符串里面,我需要双重反斜杠:

> input.replace(/([&%$#_{}])/g, "\\\\$1")
'hello \\\\& 100\\\\%'

不。只使用一个反斜杠也不会这样做:

> input.replace(/([&%$#_{}])/g, "\$1")
'hello & 100%'

那么我应该如何使用replace()插入一个反斜杠?

1 个答案:

答案 0 :(得分:3)

实际上,第一种方法是正确的并且有效。两个反斜杠确实用于制作单个反斜杠。

console.log("hello & 100%".replace(/([&%$#_{}])/g, "\\$1")); // "hello \& 100\%"

如果console.log给您带来了一些麻烦,那就不应该尝试alert。 您还需要使用您不会做的返回值。