2012-01-04 33 views
1
var txtpattern = '/[a-z]+/'; 
var regex = new RegExp(txtpattern); 
var result = txtstring.match(regex); //returns null 
var result = txtstring.match(/[a-z]+/); //returns some value 

我的查询是,有没有什么方法可以在匹配参数中设置动态模式?在Regexp中设置动态模式

+2

是的,你到底是怎么做的。我假设'txtpattern'中的表达式不正确。也许它包含'/',它们不是表达式的一部分。你必须省略它们。或者你没有正确地逃避''''''。但没有看到'textpattern'的价值,这些只是猜测。 – 2012-01-04 16:29:24

+0

关于你的更新:在第一种情况下,你的表达式是'/ [a-z] + /',第二种情况下它是'[a-z] +'。 '/.../'表示一个正则表达式,就像'[...]'表示一个数组字面量,也就是说,它们不是表达式的一部分。 – 2012-01-04 16:43:01

回答

7

使用new Regex(),你需要删除的开始和结束/字符,像这样:

var txtpattern = '[a-z]+'; 
var regex = new RegExp(txtpattern); 
var result = txtstring.match(regex);