将修饰符添加到现有正则表达式

Jin*_*iel 16 javascript regex modifier

我有一堆正则表达式,如lower =/[az] /稍后在我的程序中我需要使用它作为/ [az]/g ie.我需要稍后添加'全局'修饰符.那么如何在现有的正则表达式中添加修饰符呢?

epa*_*llo 15

使用RegEx 标志将正则表达式与标志分开.然后用字符串创建一个新的并设置所需的标志.

var re = /^[a-z]*$/;
var re2 = new RegExp(re.source, re.flags + "i");

console.log( re.test("abc") )
console.log( re.test("ABC") )
console.log( re2.test("abc") )
console.log( re2.test("ABC") )
Run Code Online (Sandbox Code Playgroud)


ken*_*bec 5

你可以为它写一个方法 -

RegExp.prototype.reflag= function(flags){
    return RegExp(this.source, flags);
}
Run Code Online (Sandbox Code Playgroud)