用’+’替换字符串中的所有空格[重复]

2020/09/30 06:21 · javascript ·  · 0评论

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

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

但它只会替换第一次出现的情况。如何获得它来代替所有出现的情况?

这是不需要正则表达式的替代方法:

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

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

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

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

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

您也可以这样做:

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

看看这个小提琴

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

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

来源:replaceAll函数

将正则表达式与g修饰符一起使用:

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

使用的JavaScript和ActionScript正则表达式

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

您需要寻找一些replaceAll选项

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

这是执行replaceAll的正则表达式方式。

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“通常” ;-))

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

应该总是这样替换:

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

非常好的详细说明:

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

递归执行此操作:

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));
}
本文地址:http://javascript.askforanswer.com/yongtihuanzifuchuanzhongdesuoyoukonggezhongfu.html
文章标签: ,  
版权声明:本文为原创文章,版权归 javascript 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!