2011-01-04 1 views
18

私は行方不明の非常に小さいものだと確信していますが、私はそれを理解することができませんでした。Javascriptの正規表現 - RegExオブジェクトへの文字列

次は、常にfalseと評価され、私はそれで正規表現パターンでJavaScript変数を持っていますが、私はそれが正規表現のクラスで

を動作させることができるように思われるカント:

var value = "[email protected]"; 
var pattern = "^\[email protected][a-zA-Z_]+?\.[a-zA-Z]{2,3}$" 
var re = new RegExp(pattern); 
re.test(value); 

が、もし私は(引用符を削除し、パターンの開始と終了時に/を追加することで)適切な正規表現式にそれを変更し、それが動作を開始:

var value = "[email protected]"; 
var pattern = /^\[email protected][a-zA-Z_]+?\.[a-zA-Z]{2,3}$/ 
var re = new RegExp(pattern); 
re.test(value); 

私はいつも変数の中の文字列としてパターンを取得するので、私はここで何が欠けているのか理解できませんでした。

答えて

24

バックスラッシュは別のバックスラッシュでエスケープする必要がある文字列内の特殊文字です。

var value = "[email protected]"; 
var pattern = "^\\[email protected][a-zA-Z_]+?\\.[a-zA-Z]{2,3}$" 
var re = new RegExp(pattern); 
re.test(value); 
+0

OMGは、私はそれが私が行方不明になったことを非常に単純なものを知っていました。ありがとう!! – shake