我有一个包含多个空格的字符串。我想用加号来代替。我想我可以用
var str = 'a b c';
var replaced = str.replace(' ', '+');
但它只替换了第一个事件。我怎么能让它替换所有的事件?
我有一个包含多个空格的字符串。我想用加号来代替。我想我可以用
var str = 'a b c';
var replaced = str.replace(' ', '+');
但它只替换了第一个事件。我怎么能让它替换所有的事件?
当前回答
var str = 'a b c';
var replaced = str.replace(/\s/g, '+');
其他回答
你也可以这样做:
str = str.replace(/\s/g, "+");
看看这把小提琴。
你需要/g(全局)选项,像这样:
var replaced = str.replace(/ /g, '+');
你可以在这里试试。与大多数其他语言不同,默认情况下,JavaScript只替换第一次出现的内容。
使用带有g修饰符的正则表达式:
var replaced = str.replace(/ /g, '+');
在JavaScript和ActionScript中使用正则表达式:
/g启用“全局”匹配。使用replace()方法时,指定此修饰符替换所有匹配项,而不是仅替换第一个匹配项。
递归地做这个:
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));
}
使用全局搜索字符串。g标志
str.replace(/\s+/g, '+');
来源:replaceAll函数