【问题标题】:replace all occurrences in a string [duplicate]替换字符串中的所有匹配项[重复]
【发布时间】:2011-08-29 05:28:03
【问题描述】:

可能重复:
Fastest method to replace all instances of a character in a string

如何替换字符串中的所有匹配项?

如果要替换字符串中的所有换行符 (\n)..

这只会替换第一次出现的换行符

str.replace(/\\n/, '<br />');

我不知道该怎么做?

【问题讨论】:

    标签: javascript regex


    【解决方案1】:

    使用全局标志。

    str.replace(/\n/g, '<br />');
    

    【讨论】:

    • developer.mozilla.org/en-US/docs/JavaScript/Reference/… "Non-standard 指定正则表达式标志组合的字符串。在 String.replace 方法中使用 flags 参数是非标准的。不要使用此参数,而是使用带有相应标志的 RegExp 对象。”
    • 你的意思是什么?我的解决方案不使用非标准标志参数。
    • 谢谢布莱根。您的代码运行良好...
    • 我不认为这是一个通用的解决方案,因为您的函数似乎无法将“|”替换为“~~”或类似的 var text= "|ABC|DEF||XYZ|||"; text = replaceAllSubString(text, '|', '~~'); alert(text); 和函数 defN :@ 987654325@jsbin
    • |是正则表达式中的特殊字符,所以必须转义:text = text.replace(/\|/g, '~~')
    【解决方案2】:

    Brighams 的答案使用literal regexp

    使用 Regex 对象的解决方案。

    var regex = new RegExp('\n', 'g');
    text = text.replace(regex, '<br />');
    

    在这里试试:JSFiddle Working Example

    【讨论】:

    • 呃,参数是非标准的。在表达式之后直接使用标志是可以的。除了使用 RegExp 构造函数(通常用于动态表达式)之外,您基本上与其他答案做同样的事情。
    • @Matt 说谁?我的帖子中有来自 Mozilla 的参考。您的参考资料在哪里?
    • /\\n/ 是一个正则表达式,'\\n' 是一个字符串。
    • RegExp 第二个函数正在工作!!!
    • 非常简单的解决方案 +1
    【解决方案3】:

    正如here 解释的那样,您可以使用:

    function replaceall(str,replace,with_this)
    {
        var str_hasil ="";
        var temp;
    
        for(var i=0;i<str.length;i++) // not need to be equal. it causes the last change: undefined..
        {
            if (str[i] == replace)
            {
                temp = with_this;
            }
            else
            {
                    temp = str[i];
            }
    
            str_hasil += temp;
        }
    
        return str_hasil;
    }
    

    ...然后您可以使用以下命令调用它:

    var str = "50.000.000";
    alert(replaceall(str,'.',''));
    

    函数会提示“50000000”

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-23
      • 1970-01-01
      • 2016-09-26
      • 2020-01-27
      • 1970-01-01
      • 1970-01-01
      • 2020-06-05
      • 1970-01-01
      相关资源
      最近更新 更多