Ich habe vor Kurzem eine Falle bei der regulären Ausdrucksübereinstimmung in JS entdeckt und sie war damals so seltsam, dass ich sogar vermutete, dass etwas Paranormales vor sich ging. Nachfolgend der Boxencode var str=["Teil1","Teil2","Teil3","Teil4","Teil5"] var reg = neuer RegExp ("g", "g"); für(var i=0;i<str.length;i++){ wenn(reg.test(str[i])){ Konsole.log(str[i]) } } Ich verwende reguläre Ausdrücke, um str global abzugleichen, und drucke es aus, wenn es erfüllt ist, also bekomme ich dies Zwei fehlen ohne ersichtlichen Grund, über sie werde ich gesondert urteilen. var str=["Teil1","Teil2","Teil3","Teil4","Teil5"] var reg = neuer RegExp ("g", "g"); für(var i=0;i<str.length;i++){ wenn(reg.test(str[i])){ Konsole.log(str[i]) } wenn(i==1){ Konsole.log(reg.test(str[i])) } wenn(i==4){ Konsole.log(reg.test(str[i])) } } Also habe ich das Es fehlt noch einer, aber ich sehe, dass die beiden fehlenden die Regelmäßigkeitsprüfung bestehen. Dann habe ich im Internet die folgende Passage gefunden: Wenn eine Zeichenfolge in einem regulären Ausdruck erfolgreich abgeglichen wird, wird lastIndex auf die Position der ersten übereinstimmenden Zeichenfolge als Ausgangspunkt für die nächste Suche nach der globalen Zeichenfolgenübereinstimmung gesetzt. Wenn nachfolgende Felder erfolgreich abgeglichen werden können, wird lastIndex wiederholt neu zugewiesen, bis die Übereinstimmung fehlschlägt, und auf 0 zurückgesetzt. Aber ich fragte meinen Lehrer und er sagte mir, dass nach dem Finden der Übereinstimmung lastIndex+1 zurückgegeben wird. Das heißt, als ich zum ersten Mal eine Übereinstimmung fand, war lastIndex 2. Diese 2 ist der Index in der Zeichenfolge, nicht der Index des Arrays. Daher beginnt die Beurteilung von str[1] mit dem Zeichenfolgenindex 2 und nicht mit 0. Daher ist die zweite Beurteilung falsch und die Übereinstimmung schlägt fehl. LastIndex wird auf 0 gesetzt, sodass die dritte Übereinstimmung erfolgreich sein kann. Nachdem das Beurteilungsergebnis wahr ist, wird lastIndex auf 0 gesetzt, sodass die Daten normal sind. Die Daten sind normal. Zusammenfassen Wenn ein globales Matching verwendet wird, wird lastIndex nach jeder Suche auf Null gesetzt, oder es wird kein globales Matching verwendet und es kann ein direktes Matching durchgeführt werden. Hier ist eine Zusammenfassung der Internetnutzer:
Freunde in Not können sich darauf beziehen. Dies ist das Ende dieses Artikels über eine Aufzeichnung der Fallstricke bei regulären JS-Matching-Problemen. Weitere relevante Fallstricke bei regulären JS-Matching-Problemen finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
Ich bin vor zwei Tagen beim Bearbeiten der schrift...
Wie unten dargestellt: SELECT Anzahl(DISTINCT(a.r...
Inhaltsverzeichnis for-Schleife While-Schleife do...
Inhaltsverzeichnis 1. Entpacken 2. Erstellen Sie ...
Was kann Arthas für Sie tun? Arthas ist das Open-...
rahmen: Stil = „Rahmenstil: durchgezogen; Rahmenbr...
Beim Starten von MySQL in einer OS X-Umgebung wir...
1. Software-Download MySQL-Download und -Installa...
Die Testumgebung ist mit MariaDB 5.7 eingerichtet...
Hinweis: Dieser Artikel wurde von jemand anderem ü...
Der Linux-Befehl „seq“ kann blitzschnell Zahlenli...
Inhaltsverzeichnis Einführung in gespeicherte Pro...
Vorwort: Docker ist eine Open-Source-Anwendungsco...
Vorwort: Zum Speichern mehrerer Elemente sind Arr...
1. Zwei Wörter am Anfang Hallo zusammen, mein Nam...