我想使用javascript中的replace()替换文本中的几个单词,该怎么办?

例如,如果我想将' Dave Chambers,David Chambers,Will Smith '替换为' Jackie Chan ',无论它们是大写还是小写,我都必须继续重复每次对同一字符串变量使用replace()方法,即

var str = sometext.innerHTML;
str.replace('Dave Chambers', 'Jackie Chan');
str.replace('David Chambers', 'Jackie Chan');
str.replace('Will Smith', 'Jackie Chan');

最佳答案

将正则表达式与交流发电机(|)和不区分大小写的修饰符(/i)一起使用:

var str = sometext.innerHTML,
    reg = /Dave Chambers|David Chambers|Will Smith/i;

str = str.replace(reg, "Jackie Chan");

一个更短,更复杂的正则表达式可能是:
/Dav(?:e|id) Chambers|Will Smith/i;

如果出现的次数不止1次,请添加全局修饰符(g)替换所有内容:
/Dav(?:e|id) Chambers|Will Smith/ig;

您可以了解更多有关正则表达式here的信息,也可以搜索Google。您可以看到一个有效的演示here

08-18 05:59