一尘不染

JavaScript如何在正则表达式中使用变量?

javascript

我想String.replaceAll()在JavaScript中创建一个方法,并且我认为使用正则表达式是最简洁的方法。但是,我不知道如何将变量传递给正则表达式。我能做到这一点已经将取代所有的实例"B""A"

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

但是我想做这样的事情:

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

但是显然这只会替换文本"replaceThis"…所以如何将这个变量传递给我的正则表达式字符串?


阅读 2337

收藏
2020-04-22

共1个答案

一尘不染

代替使用/regex/g语法,可以构造一个新的RegExp对象:

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

您可以通过这种方式动态创建正则表达式对象。然后,您将执行以下操作:

"mystring".replace(re, "newstring");
2020-04-22