我有一个包含多个空格的字符串。我想用加号来代替。我想我可以用

var str = 'a b c';
var replaced = str.replace(' ', '+');

但它只替换了第一个事件。我怎么能让它替换所有的事件?


当前回答

你需要/g(全局)选项,像这样:

var replaced = str.replace(/ /g, '+');

你可以在这里试试。与大多数其他语言不同,默认情况下,JavaScript只替换第一次出现的内容。

其他回答

你需要/g(全局)选项,像这样:

var replaced = str.replace(/ /g, '+');

你可以在这里试试。与大多数其他语言不同,默认情况下,JavaScript只替换第一次出现的内容。

使用带有g修饰符的正则表达式:

var replaced = str.replace(/ /g, '+');

在JavaScript和ActionScript中使用正则表达式:

/g启用“全局”匹配。使用replace()方法时,指定此修饰符替换所有匹配项,而不是仅替换第一个匹配项。

非间断空间问题

在某些浏览器中

(MSIE“照常”;-))

替换字符串中的空格会忽略不间断的空格(160字符代码)。

应该总是这样替换:

myString.replace(/[ \u00A0]/, myReplaceString)

非常好的详细解释:

http://www.adamkoch.com/2009/07/25/white-space-and-character-160/

你也可以这样做:

str = str.replace(/\s/g, "+");

看看这把小提琴。

使用全局搜索字符串。g标志

str.replace(/\s+/g, '+');

来源:replaceAll函数