JS通常のRegExp.test()を使用する場合の注意点(繰り返し不可)

高洛峰
リリース: 2017-01-09 15:23:36
オリジナル
1576 人が閲覧しました

この記事では、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 サイトを参照してください。


関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!