替换javascript字符串中的所有符号

时间:2013-07-24 15:45:52

标签: javascript

大家都试图通过使用以下代码替换字符串中“+”的所有字符:

var findValue = "+";
var re = new RegExp(findValue, 'g');
searchValueParam = searchValueParam.replace(re, " ");

但是我接受了这个例外:

SyntaxError: Invalid regular expression: nothing to repeat

之前我只使用了searchValueParam = searchValueParam.replace(“+”,“”);但这只会替换第一次出现,而不是全部。

有什么建议吗?

3 个答案:

答案 0 :(得分:3)

对于多次替换,您需要将正则表达式与全局(g)修饰符一起使用,但+具有特殊含义(前一项为1次或更多次),因此需要对其进行转义。

searchValueParam = searchValueParam.replace(/\+/g,' ');

答案 1 :(得分:2)

你需要逃避+标志:

searchValueParam.replace(/\+/g, " ");

答案 2 :(得分:1)

如果您想保留您的代码,请替换

var findValue = '+';

var findValue = '\\+';

Plus在正则表达式中具有特殊含义(量词)。这就是为什么我们需要用反斜杠来逃避它:\ +。但是,当您将其放在字符串中时,反斜杠本身必须进行转义,因为它在字符串中具有特殊含义。这就是我们最终得到'\\ +'的方式。

总之,这个

var re = new RegExp('\\+', 'g')

等同于此

var re = /\+/g;