この記事では、JS の通常の RegExp.test() を使用する際の注意点を例とともに分析します。参考のために皆さんと共有してください。詳細は次のとおりです:
まず次のコードを見てください:
// 2012-12-12 12:12:12 var regex = /\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}/g; // true alert(regex.test("2012-12-12 12:12:12")); // false alert(regex.test("2012-12-12 12:12:12"));
実行結果はすでにコードのコメントに含まれていることがわかります: 同じ正規表現オブジェクトの正規表現では、それはできません。繰り返し呼び出されます: First これは、最初の場合は true を返し、2 回目の場合は false を返します。明らかに、この効果は私たちが望むものではありません。これは、RegExp.test() メソッドが最初に位置 0 から検索を開始し、一致する可能性があるためです。2 番目の検索位置は 0 ではないため、一致することはできません。
解決策は非常に簡単です: テストが毎回 0 番目の位置からマッチングを開始するようにするだけです:
// 2012-12-12 12:12:12 var regex = /\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}/g; // true alert(regex.test("2012-12-12 12:12:12")); regex.lastIndex = 0; // true alert(regex.test("2012-12-12 12:12:12"));
この記事が JavaScript プログラミングのすべての人に役立つことを願っています。
JS の通常の RegExp.test() 使用上の注意事項 (繰り返しではありません) については、PHP 中国語 Web サイトを参照してください。