「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > JavaScript RegEx が入力の検証に失敗するのはなぜですか?

JavaScript RegEx が入力の検証に失敗するのはなぜですか?

2024 年 11 月 3 日に公開
ブラウズ:893

Why is JavaScript RegEx Failing to Validate Inputs?

JavaScript の RegEx 機能に関する問題: 「Regex Not Working」のケーススタディ

タイトルで参照されているクエリのコンテキストでは、「Javascript RegEx Not Working」 」というメッセージが表示され、入力値に関係なく、正規表現 (regEx) が一貫して false を返すという問題が発生しました。問い合わせで提供されたコード スニペットは次のとおりです。

function checkLegalYear() {
    var val = "02/2010"; 

    if (val != '') {
        var regEx = new RegExp("^(0[1-9]|1[0-2])/\d{4}$", "g");

        if (regEx.test(val)) {
            //do something
        }
        else {
            //do something
        }
    }
}

ユーザーは正規表現を使用して年の入力を検証しようとしましたが、予期しない結果が発生しました。このコードを複数のオンライン エディタでテストしたにもかかわらず、正規表現は false を返し続けました。

問題への対処:

問題の根本は、 RegEx オブジェクト。文字列から RegEx を定義する場合、解析プロセス中に誤った解釈が行われないように、バックスラッシュ文字を 2 つ重ねる必要があります。これを修正するには、次のコードを使用する必要があります:

var regEx = new RegExp("^(0[1-9]|1[0-2])//\\d{4}$", "g");

または、バックスラッシュを 2 つ重ねる必要がない RegEx 構文を直接使用することをお勧めします。

var regEx = /^(0[1-9]|1[0-2])//\\d{4}$/g;

これらの変更を実装することで、正規表現は意図したとおりに機能し、年の入力を検証し、正確な値を提供するようになります。結果。

リリースステートメント この記事は次の場所に転載されています: 1729229298 権利侵害がある場合は、[email protected] に連絡して削除してください。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3