Javascript Regexp从变量动态生成?
这个问题在这里已经有了答案:
您必须使用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