„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Warum kann JavaScript RegEx Eingaben nicht validieren?

Warum kann JavaScript RegEx Eingaben nicht validieren?

Veröffentlicht am 03.11.2024
Durchsuche:161

Why is JavaScript RegEx Failing to Validate Inputs?

Probleme mit der RegEx-Funktionalität in Javascript: Eine Fallstudie aus „Regex funktioniert nicht“

Im Kontext der im Titel genannten Abfrage: „Javascript RegEx funktioniert nicht.“ „Ein Benutzer ist auf ein Problem gestoßen, bei dem ein regulärer Ausdruck (regEx) unabhängig vom Eingabewert durchweg „false“ zurückgegeben hat. Der in der Anfrage bereitgestellte Codeausschnitt lautet wie folgt:

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
        }
    }
}

Der Benutzer hat versucht, Jahreseingaben mithilfe eines RegEx zu validieren und hat unerwartete Ergebnisse festgestellt. Obwohl dieser Code in mehreren Online-Editoren getestet wurde, gab RegEx weiterhin false zurück.

Behebung des Problems:

Die Wurzel des Problems liegt in der zum Erstellen verwendeten Methode das RegEx-Objekt. Beim Definieren eines RegEx aus einer Zeichenfolge müssen Backslash-Zeichen verdoppelt werden, um eine falsche Interpretation während des Analysevorgangs zu verhindern. Um dies zu beheben, sollte der folgende Code verwendet werden:

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

Alternativ wird empfohlen, die RegEx-Syntax direkt zu verwenden, wodurch die Notwendigkeit doppelter Backslashes entfällt:

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

Durch die Implementierung dieser Änderungen sollte RegEx nun wie vorgesehen funktionieren, Jahreseingaben validieren und genaue Angaben liefern Ergebnisse.

Freigabeerklärung Dieser Artikel wird unter folgender Adresse abgedruckt: 1729229298 Bei Verstößen wenden Sie sich bitte an [email protected], um ihn zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3