替换字符串中的所有出现

IT技术 javascript regex
2021-02-05 16:48:53

可能的重复:
替换字符串中一个字符的所有实例的最快方法

如何替换字符串中出现的所有内容?

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

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

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

我不知道如何做这个把戏?

3个回答

使用全局标志。

str.replace(/\n/g, '<br />');
我不认为这是一个通用的解决方案,因为您的函数似乎无法将“|”替换为“~~”或类似的东西var text= "|ABC|DEF||XYZ|||"; text = replaceAllSubString(text, '|', '~~'); alert(text); 以及函数 defN: function replaceAllSubString(targetString, subString, replaceWith) { while (targetString.indexOf(subString) != -1) { targetString = targetString.replace(subString, replaceWith); } return targetString; } jsbin
2021-03-16 16:48:53
你想说什么?我的解决方案不使用非标准标志参数。
2021-04-01 16:48:53
谢谢布里格姆。您的代码运行良好...
2021-04-01 16:48:53
| 是正则表达式中的特殊字符,因此您必须对其进行转义: text = text.replace(/\|/g, '~~')
2021-04-07 16:48:53
developer.mozilla.org/en-US/docs/JavaScript/Reference/... "Non-standard 指定正则表达式标志组合的字符串。在 String.replace 方法中使用 flags 参数是非标准的。而不是使用此参数,使用带有相应标志的 RegExp 对象。”
2021-04-08 16:48:53

布里格姆斯的回答使用literal regexp.

使用 Regex 对象的解决方案。

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

在这里尝试:JSFiddle 工作示例

/\\n/ 是一个正则表达式, '\\n' 将是一个字符串。
2021-03-20 16:48:53
呃,参数不规范。在表达式之后直接使用标志很好。除了使用 RegExp 构造函数(通常用于动态表达式)之外,您基本上做与其他答案相同的事情。
2021-03-23 16:48:53
RegExp 第二个功能正在工作!!!
2021-03-30 16:48:53
很棒的简单解决方案 +1
2021-04-03 16:48:53
@Matt 说谁?在我的帖子中有来自 Mozilla 的参考。你的参考在哪里?
2021-04-13 16:48:53

正如解释在这里,你可以使用:

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”