あなたの文字列がのみ日付になりたい場合は、次の
var pattern = /^\d{2}\/\d{2}\/\d{4}$/;
あなたがにあなたの文字列をしたい場合は日付が含まれています。
var pattern = /\d{2}\/\d{2}\/\d{4}/;
働いていなかった何
:数字と/
の
g
、当社の正規表現に興味深い意味を持っている、グローバルな意味を持つの日付を検索する際
i
は大文字小文字を区別しない、意味がない...
は、コンソールでこの例を実行してみてください:
var pattern = /\d{2}\/\d{2}\/\d{4}/gi;
pattern.test("21/12/2009");
true
pattern.test("21/12/2008");
false
pattern.test("21/12/2008");
true
pattern.test("21/12/2009");
false
pattern.test("21/12/2009");
true
pattern.test("21/12/2009");
false
注トンということ私たちがテストに送るものには何の支障もありません。
これは、g
フラグを使用するとJavaScriptの正規表現エンジンが不潔であるためです。テストからテストまでの状態を保持します。この質問から:
あなたが最初に一致した時点でJS正規表現のグローバルフラグ「テスト」と「実行」メソッド各停止を使用しますが、それらは、文字列で検索を停止した場所へのポインタを保持Interesting test of Javascript RegExp。そのポインタは、lastIndexプロパティで検査できます。 「test」または「exec」をもう一度呼び出すと、lastIndexから始まる一致を検索し始めます。
したがって、文字列全体に一致する文字列に対してRegExpをテストすると、lastIndexは文字列の最後に設定されます。次回のテストでは、文字列の最後から開始し、falseを返し、lastIndexを0に戻します。
我々は、この動作は上記の当社のコード例から続けて見ることができます:
pattern.test("21/12/2009");
true
pattern.lastIndex
10
pattern.test("21/12/2009");
false
pattern.lastIndex
0
pattern.test("21/12/2009");
true