从stringJavaScript新regexp
我正在尝试创build类似于此的内容:
var regexp_loc = /e/i;
除了我想正则expression式依赖于一个string,所以我试图使用新的RegExp,但我无法得到我想要的。
基本上我想在上面的正则expression式中的e
是一个stringvariables,但我失败的语法。
我尝试了这样的事情:
var keyword = "something"; var test_regexp = new RegExp("/" + keyword + "/i");
基本上我想search一个较大的string中的子string,然后用其他stringreplacestring,不区分大小写。
问候,亚历山大
你需要传递第二个参数 :
var r = new RegExp(keyword, "i");
您还需要转义string中的任何特殊字符以防止正则expression式注入攻击。
您还应该记住要注意string中的转义字符…
例如,如果你想检测一个单一的号码\ D {1},你做到了这一点…
var pattern = "\d{1}"; var re = new RegExp(pattern); re.exec("1"); // fail! :(
这将失败,因为最初\是一个转义字符,你将需要“逃生逃生”,像这样…
var pattern = "\\d{1}" // <-- spot the extra '\' var re = new RegExp(pattern); re.exec("1"); // success! :D
使用RegExp构造函数时,不需要使用正则expression式字面值时的斜线。 所以:
new RegExp(keyword, "i");
请注意,您传入第二个参数中的标志。 在这里看到更多的信息。
var keyword =“something”;
var test_regexp = new RegExp(something,“i”);