在 JavaScript 中替换字符串中字符串/字符的所有实例的最快方法是什么?一个while
,一个for
循环,一个正则表达式?
替换字符串中字符的所有实例的最快方法
IT技术
javascript
string
replace
2021-01-31 16:06:38
6个回答
最简单的方法是使用带有g
标志的正则表达式来替换所有实例:
str.replace(/foo/g, "bar")
这将替换字符串中所有出现的foo
with 。如果您只有一个字符串,则可以将其转换为 RegExp 对象,如下所示:bar
str
var pattern = "foobar",
re = new RegExp(pattern, "g");
试试这个replaceAll: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 项测试。
var mystring = 'This is a string';
var newString = mystring.replace(/i/g, "a");
newString 现在是 'Thas as a strang'
您也可以尝试:
string.split('foo').join('bar');
您可以使用以下内容:
newStr = str.replace(/[^a-z0-9]/gi, '_');
或者
newStr = str.replace(/[^a-zA-Z0-9]/g, '_');
这会将所有不是字母或数字的字符替换为 ('_')。简单地更改您想要替换的任何下划线值。
其它你可能感兴趣的问题