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