2014-11-06 79 views
0

我有这个regexpjQuery的正则表达式的动态表达

var regexp = /(2\d)(\W)/gi 

现在我要动态地设置它,这意味着价值2可以改变这样的:

var regexp = /(changablevalue\d)(\W)/gi 

我想:

var regexp = "/(" + changablevalue + "\d)(\W)/gi" 

and

var changablevalue = 2 
var regexp = /(changablevalue\d)(\W)/gi 

但无法正常工作。我在这里做错了什么?

回答

1

将您的正则表达式传递给RegExp构造函数。

var regex = new RegExp("("+changablevalue + "\\d)(\\W)", "gi") 

例子:

> var changablevalue = 2 
> var regex = new RegExp("("+changablevalue + "\\d)(\\W)", "gi") 
undefined 
> console.log(regex) 
/(2\d)(\W)/gi 
undefined 
> regex.test('28.') 
true 
> regex.test('48.') 
false 
+0

它仍然没有工作,我是否需要安装一些额外的课程? – NeedAnswers 2014-11-06 06:52:38

+0

现在检查.... – 2014-11-06 06:53:28

+0

啊我看,斜杠 – NeedAnswers 2014-11-06 06:54:35