如何动态创建正则表达式以在.match Javascript中使用?

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

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

  • RegExp是你的朋友:

    var p = "*|", s = "|*"
    
    var reg = new RegExp(p + '(d{3,})' + s, 'g')
    
    "*|1387461375|* hello *|sfa|* *|3135145|* test".match(reg)
    

    工作示例。


    您可以先使用变量构造一个RegExp对象。 还要记住要逃避*| 同时形成RegExp对象:

    var p = "*|";
    var s = "|*";
    var re = new RegExp(p.replace(/([*|])/g, '$1')
                     + "(d{3,})" + 
                     s.replace(/([*|])/g, '$1'), "g");
    
    var m = "*|1387461375|* hello *|sfa|* *|3135145|* test".match(re);
    console.log(m);
    
    //=> ["*|1387461375|*", "*|3135145|*"]
    
    链接地址: http://www.djcxy.com/p/76831.html

    上一篇: How to dynamically create regex to use in .match Javascript?

    下一篇: How to remove a single class only in Javascript using Regex?