2012-01-04 74 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);