2011-08-13 5 views
15

私は正規表現の一致に変数を入れる方法は?

var string1 = 'asdgghjajakhakhdsadsafdgawerwweadf'; 
var string2 = 'a'; 
string1.match("\/"+string2+"\/g").length; 

だからこれで、私はのappereanceを見つけたいましたが、ITN iが変数ライトを置くことができるか、wirkingされていませんか?

答えて

34

正規表現リテラルの代わりにRegExpコンストラクタを使用する必要があります。あなたがグローバルモディファイアを必要としなかった場合は

var string = 'asdgghjjkhkh'; 
var string2 = 'a'; 
var regex = new RegExp(string2, 'g'); 
string.match(regex); 

、その後、あなただけstring2を渡すことができ、そして.match()はあなたのための正規表現を作成します。

string.match(string2); 
+1

変数を文字列と組み合わせることができます。その場合、エスケープ文字は二重エスケープされます。 "a"の後ろに数字をマッチさせたい場合、 'var str =" abca1cba3a "; var search = "a"; var re = new RegExp(検索+ '\\ d'、 'g'); str.match(re); //結果:['a1'、 'a3'] ' – publicJorn

関連する問題