如何在JavaScript中替换所有出现的字符串

如何在JavaScript中替换所有出现的字符串

我有这个字符串:

"Test abc test test abc test test test abc test test abc"

str = str.replace('abc', '');

似乎只删除了abc上面字符串中的第一次出现。如何更换所有出现的内容?


森林海
浏览 1080回答 3
3回答

三国纷争

str = str.replace(/abc/g, '');回应评论:var find = 'abc';var re = new RegExp(find, 'g');str = str.replace(re, '');在回应Click Upvote的评论时,您可以进一步简化它:function replaceAll(str, find, replace) {    return str.replace(new RegExp(find, 'g'), replace);}注意:正则表达式包含特殊(元)字符,因此盲目传递上述函数中的参数find而不预先处理它以逃避这些字符是危险的。这在Mozilla开发者网络的正则表达式JavaScript指南中有所介绍,它提供了以下实用程序功能:function escapeRegExp(str) {    return str.replace(/([.*+?^=!:${}()|\[\]\/\\])/g, "\\$1");}因此,为了使上述replaceAll()功能更安全,如果您还包括以下内容,可将其修改为以下内容escapeRegExp:function replaceAll(str, find, replace) {    return str.replace(new RegExp(escapeRegExp(find), 'g'), replace);}

跃然一笑

注意:不要在实际代码中使用它。作为简单文字字符串的正则表达式的替代,您可以使用str = "Test abc test test abc test...".split("abc").join("");一般模式是str.split(search).join(replacement)在某些情况下,这比使用replaceAll和正则表达式更快,但在现代浏览器中似乎不再是这种情况。因此,这应该只是用作快速入侵,以避免需要转义正则表达式,而不是真正的代码。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java