问题

我想在JavaScript中创建一个String.replaceAll()方法,我认为使用RegEx是最简单的方法.但是,我不知道如何将一个变量传递到RegEx.我可以做到这一点,将"B"的所有实例替换为"A".

"ABABAB".replace(/B/g, "A");

但我想做这样的事情:

String.prototype.replaceAll = function(replaceThis, withThis) {
    this.replace(/replaceThis/g, withThis);
};

但是显然这将只替换文本"replaceThis"...所以我怎么传递这个变量到我的RegEx字符串?



解决方法

您可以使用 / regex / g 语法替换 RegExp 对象:

var replace = "regex";
var re = new RegExp(replace,"g");

您可以通过这种方式动态创建正则表达式对象.然后你会做:

"mystring".replace(re, "newstring");



相关问题推荐