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

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

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


当前回答

这里有一个不需要regex的替代方案:

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

其他回答

这里有一个不需要regex的替代方案:

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

你也可以这样做:

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

看看这把小提琴。

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

递归地做这个:

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函数