2012-03-13 3 views
1

Javascript正規表現の構文エラー?私は隠されたinput要素から抽出された文字列から構築する正規表現に対してテスト文字列を評価しようとしている

HTML 
<input type="hidden" name="reg_2" id="reg_2" value="^\\d{5}$"> 

JS 
var regTest = new RegExp($('#reg_2').val(), 'g'); 
var valid = "12345"; 
var invalid = "47"; 
alert(regTest.test(valid));<--Returns false 

を次のように、コードはそれをfalseに評価し続け、私はわかりません構文が間違っている場合、または他に何かがある場合は、私は行方不明です。グローバルフラグの有無に関わらず試してみましたが、jQueryセレクターが正しい値を返すことも確認しました。助けや洞察力は大歓迎です。ありがとうございました。

UPDATEは迅速な対応をありがとうございました。私はMozilla Dev Networkの例に従っていました。この例では、RegExコンストラクターにハードコードされた文字列が表示されています。バックスラッシュは二重で、スクリプトに渡す必要があります。再度、感謝します。

答えて

1

あなたはバックスラッシュをエスケープする必要はありません。非表示入力の値は"^\d{5}$"にする必要があります。ここにはworking exampleがあります。

2

入力値に1つのスラッシュを削除します。

<input type="hidden" name="reg_2" id="reg_2" value="^\d{5}$"> 
関連する問題