Nach dem Aufruf von test
in einer Zeichenfolge wird der lastIndex
-Zeiger nach der Übereinstimmung gesetzt.
und wenn es ans Ende kommt, wird der Zeiger auf den Anfang der Zeichenfolge zurückgesetzt.
Sie können '$ A1 $ A1' versuchen, das Ergebnis wird
sein %Vor%Dieses Verhalten ist in 15.10.6.2, ECMAScript Language Spec .
Schritt 11. Wenn global stimmt, ein. Rufen Sie die interne Methode [[Put]] von R mit den Argumenten "
lastIndex
", e und true auf.
Ich habe Ihren Code auf ein einfaches Beispiel reduziert:
%Vor%Dies passiert nur mit globalen regulären Ausdrücken!
Aus der MDN-Dokumentation zu .test()
:
Wie bei
exec
(oder in Kombination damit), rufttest
, das mehrere Male für dieselbe Instanz des globalen regulären Ausdrucks aufgerufen wird, die vorherige Übereinstimmung auf.
Das 'g' in Zeile 1 ist nicht korrekt, Sie führen hier keine Ersetzung durch, sondern eine Übereinstimmung, entfernen Sie sie und Sie erhalten Ihr erwartetes Verhalten.
var regexp = / \ $ [A-Z] + [0-9] + / g; sollte sein: var regexp = / \ $ [A-Z] + [0-9] + /
Tags und Links javascript regex