replace为JavaScript中的单个反斜杠?

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

我读过双反斜线用来插入文字反斜线:

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

不。 我也读过,因为它是在一个string内,我需要双重逃避反斜杠:

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

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

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

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

实际上,第一种方法是正确的,可行的。 实际上使用两个反斜杠来构成一个反斜杠。

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

如果console.log给你一些麻烦,不应该尝试alert 。 你也需要使用你没有做的返回值。