【问题标题】:concat variable in regexp pattern正则表达式模式中的 concat 变量
【发布时间】:2012-10-25 12:48:48
【问题描述】:

我使用这个正则表达式

str = "asd34rgr888gfd98";
var p = str.match(/\d{2}/);
alert(p[0]);

但我不明白如何使用变量作为量词,就是这样写的:

 var number = 2;
 var p = str.match(/\d{number}/);

附:我看到这个页面JavaScript regex pattern concatenate with variable 但在我的情况下,不明白如何使用这些帖子中的示例。

【问题讨论】:

    标签: javascript regex


    【解决方案1】:

    您需要将您的正则表达式构建为字符串并将其传递给RegExp constructor

    var regexString = '\\d{' + number + '}';
    var regex = new RegExp(regexString);
    var p = str.match(regex);
    

    请注意,当通过字符串构建正则表达式时,您需要添加一些额外的转义字符来转义字符串以及正则表达式。

    【讨论】:

      【解决方案2】:
      var number = "2"
      var p = new RegExp("\\d{" + number + "}");
      

      【讨论】:

        【解决方案3】:

        这应该可行:

        var str = "asd34rgr888gfd98";
        number = 3;
        p = str.match(new RegExp('\\d{' + number + '}'));
        
        alert(p[0]);
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-07-13
          • 2011-02-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多