Javascript Regexp从变量动态生成?

这个问题在这里已经有了答案:

  • 你如何在正则表达式中使用变量? 16个答案

  • 您必须使用RegExp

    str.match(new RegExp(pattern1+'|'+pattern2, 'gi'));
    

    当我连接字符串时,所有斜杠都消失了。

    如果你的模式中有一个反斜杠来转义一个特殊的正则表达式字符(比如( ),你必须在字符串中使用两个反斜杠(因为是字符串中的转义字符): new RegExp('(')将与/(/

    所以你的模式必须成为:

    var pattern1 = ':(|:=(|:-(';
    var pattern2 = ':(|:=(|:-(|:(|:=(|:-(';
    

    使用以下内容:

    var regEx = new RegExp(pattern1+'|'+pattern2, 'gi');
    
    str.match(regEx);
    

    您必须放弃正则表达式并使用对象构造函数,您可以将正则表达式作为字符串传递。

    var regex = new RegExp(pattern1+'|'+pattern2, 'gi');
    str.match(regex);
    
    链接地址: http://www.djcxy.com/p/76819.html

    上一篇: Javascript Regexp dynamic generation from variables?

    下一篇: Use RegExp to match a parenthetical number then increment it