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:
|
Vorwort Ich bin einmal auf ein schwieriges Proble...
Nachdem ich die halbe Nacht daran gearbeitet hatt...
In HTML wird das <img>-Tag verwendet, um ei...
Grundlegende Einführung in das Floating Im Standa...
Vorwort In diesem Artikel untersuchen wir die Ent...
In manchen Vorstellungsgesprächen werden häufig F...
Inhaltsverzeichnis 1. Einführung in Binlog 2. Bin...
MySQL-Basisdatentypen Übersicht über gängige MySQ...
Nach dem Upgrade von MySQL auf Version 5.7 wurde ...
Heute hatte ich etwas Freizeit, um eine Website f...
Manchmal müssen wir steuern, ob HTML-Elemente auf ...
Programme in Docker-Containern müssen häufig auf ...
Inhaltsverzeichnis einführen Vorbereiten Systemab...
1. Kauf des Servers 1. Ich habe mich für den Serv...
Vorwort Die beste Methode ist möglicherweise nich...