用“+”replacestring中的所有空格

我有一个包含多个空格的string。 我想用一个加号代替它们。 我以为我可以使用

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

但它只取代第一次出现。 我怎样才能取代所有的事件?

这是一个不需要regex的替代方法:

 var str = 'ab c'; var replaced = str.split(' ').join('+'); 

您需要/g (全局)选项,如下所示:

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

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

 var str = 'ab c'; var replaced = str.replace(/\s/g, '+'); 

你也可以这样做

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

看看小提琴: http : //jsfiddle.net/aC5ZW/

在string中使用全局search。 克旗子

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

来源: replaceAll函数

g修饰符使用正则expression式:

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

从JavaScript和ActionScript使用正则expression式 :

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

你需要找一些replaceAll选项

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

这是做一个replaceAll的正则expression式的方法。

 function ReplaceAll(Source, stringToFind, stringToReplace) { var temp = Source; var index = temp.indexOf(stringToFind); while (index != -1) { temp = temp.replace(stringToFind, stringToReplace); index = temp.indexOf(stringToFind); } return temp; } String.prototype.ReplaceAll = function (stringToFind, stringToReplace) { var temp = this; var index = temp.indexOf(stringToFind); while (index != -1) { temp = temp.replace(stringToFind, stringToReplace); index = temp.indexOf(stringToFind); } return temp; }; 

非破碎的空间问题

在一些浏览器中

(MSIE“通常”;-))

replacestring中的空格将忽略非分隔空间(160个字符代码)。

应该总是这样replace:

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

非常好的详细解释:

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

做这个recursion:

 public String replaceSpace(String s){ if (s.length() < 2) { if(s.equals(" ")) return "+"; else return s; } if (s.charAt(0) == ' ') return "+" + replaceSpace(s.substring(1)); else return s.substring(0, 1) + replaceSpace(s.substring(1)); }