Durchführen von Regex-Übereinstimmungen ohne Berücksichtigung der Groß-/Kleinschreibung in JavaScript
Bei der Arbeit mit URLs ist es häufig erforderlich, Daten aus der Abfragezeichenfolge zu extrahieren. In JavaScript kann die Verwendung regulärer Ausdrücke zur Durchführung dieser Extraktion unkompliziert sein, die Sicherstellung der Berücksichtigung der Groß-/Kleinschreibung kann jedoch eine Herausforderung darstellen.
In diesem Beitrag untersuchen wir ein häufiges Problem, bei dem ein Vergleich unter Beachtung der Groß-/Kleinschreibung zu inkonsistenten Ergebnissen führen kann. Betrachten wir den folgenden Codeausschnitt:
var results = new RegExp('[\\?&]' name '=([^&#]*)').exec(window.location.href); if (!results) { return 0; } return results[1] || 0;
Dieser Code soll den Wert eines Abfragezeichenfolgenparameters namens „name“ aus der aktuellen URL extrahieren. Es wird jedoch kein Vergleich ohne Berücksichtigung der Groß-/Kleinschreibung für den Namen der Abfragezeichenfolge durchgeführt, was zu unerwartetem Verhalten führen könnte, wenn der Name mit einer anderen Schreibweise eingegeben wird.
Um dieses Problem zu beheben, können wir das „i“ verwenden. Modifizierer in unserem regulären Ausdruck, um beim Vergleich die Groß-/Kleinschreibung zu ignorieren. Dieser Modifikator sollte unmittelbar nach dem letzten Schrägstrich im regulären Ausdruck hinzugefügt werden, wie unten gezeigt:
var results = new RegExp('[\\?&]' name '=([^&#]*)', 'i').exec(window.location.href);
Durch die Einbeziehung des Modifikators „i“ ignoriert der reguläre Ausdruck nun die Groß-/Kleinschreibung des Abfragezeichenfolgennamens und stellt so sicher, dass die Der Vergleich ist unabhängig von der Groß-/Kleinschreibung der Eingabe erfolgreich.
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