正则表达式 Javascript 在模式中使用变量

Regex Javascript use variable within pattern

本文关键字:变量 模式 Javascript 正则表达式      更新时间:2023-09-26

我知道以前有人问过这个问题,但没有一个建议的解决方案对我有用。我有以下几点:

  var regex = new RegExp(/D0030001 IN/gi);
  $("p").filter(function () {
        return regex.test(this.id); 
   }).css("background-color","blue");

这个工作正常。但是,当我尝试做

 spl = [];
 spl[0] = "D0030001";
 spl[1] = "IN";
 var regex = new RegExp("/" + spl[0] + " " + spl[1] + "/gi");
       $("p").filter(function () {
        return regex.test(this.id); 
   }).css("background-color","blue");

这个不起作用。换句话说,我需要使用变量来构造正则表达式模式。谢谢

您需要使用 RegExp 构造函数的第二个参数来设置标志,并且不需要/ /分隔符。

var regex = new RegExp(spl[0] + " " + spl[1], "gi");