替换字符串中字符的所有实例的最快方法

2022-08-29 22:28:40

在JavaScript中替换字符串中字符串/字符的所有实例的最快方法是什么?A,-循环,正则表达式?whilefor


答案 1

最简单的方法是使用带有标志的正则表达式来替换所有实例:g

str.replace(/foo/g, "bar")

这将替换字符串 中出现的所有 with 。如果您只有一个字符串,则可以将其转换为 RegExp 对象,如下所示:foobarstr

var pattern = "foobar",
    re = new RegExp(pattern, "g");

答案 2

尝试此替换全部: http://dumpsite.com/forum/index.php?topic=4.msg8#msg8

String.prototype.replaceAll = function(str1, str2, ignore) 
{
    return this.replace(new RegExp(str1.replace(/([\/\,\!\\\^\$\{\}\[\]\(\)\.\*\+\?\|\<\>\-\&])/g,"\\$&"),(ignore?"gi":"g")),(typeof(str2)=="string")?str2.replace(/\$/g,"$$$$"):str2);
} 

它非常快,并且可以适用于许多其他人失败的所有这些条件:

"x".replaceAll("x", "xyz");
// xyz

"x".replaceAll("", "xyz");
// xyzxxyz

"aA".replaceAll("a", "b", true);
// bb

"Hello???".replaceAll("?", "!");
// Hello!!!

让我知道你是否可以打破它,或者你有更好的东西,但要确保它可以通过这4个测试。