„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 schlägt der JavaScript-RegEx-Test fehl?

Warum schlägt der JavaScript-RegEx-Test fehl?

Veröffentlicht am 10.11.2024
Durchsuche:129

Why Does JavaScript RegEx Testing Fail?

JavaScript-RegEx-Test schlägt fehl: Problem entschlüsseln

Im Bereich JavaScript stieß ein Entwickler auf ein rätselhaftes Dilemma: sein Muster für reguläre Ausdrücke war konsistent lieferte für jede Eingabe falsche Ergebnisse. Als sie ihren Code mit Online-Redakteuren teilten, funktionierte er überraschenderweise wie vorgesehen. Eine genauere Untersuchung ergab den Übeltäter: unsachgemäße Backslash-Behandlung.

Ursprünglich definierte der Entwickler den regulären Ausdruck als Zeichenfolge:

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

Beim Erstellen eines regulären Ausdrucks aus einer Zeichenfolge ist dies jedoch der Fall Es ist wichtig, jedes Backslash-Zeichen zu verdoppeln. Dies liegt daran, dass der Parser das Zeichenfolgenliteral interpretiert und seine eigenen Regeln für Backslashes anwendet, was zu einem geänderten Ausdruck führt, der vom beabsichtigten Muster abweicht.

Durch Weglassen der Backslash-Verdopplung wurde das Muster zu:

^(0[1-9]|1[0-2])/d{4}$

Stattdessen sollten die Backslashes verdoppelt werden innerhalb der Zeichenfolge:

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

Diese Änderung stellt sicher, dass der Parser das Muster richtig interpretiert und das gewünschte Format für Monate und Jahre erkennt.

Darüber hinaus ist es eine Überlegung wert, die Syntax regulärer Ausdrücke zu verwenden direkt:

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

Dies entfällt die Notwendigkeit einer String-Interpolation und bietet eine intuitivere Syntax zum Ausdrucken des Musters.

Freigabeerklärung Dieser Artikel wird unter folgender Adresse abgedruckt: 1729229116 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