Heim >Web-Frontend >js-Tutorial >Wie kann ich die Zeichenlänge in regulären Ausdrücken mithilfe von Lookahead einschränken?
Einschränken der Zeichenlänge in regulären Ausdrücken
Ihr ursprünglicher regulärer Ausdruck erlaubte eine unbegrenzte Zeichenlänge, aber als Sie versuchten, sie auf 15 zu beschränken Zeichen mit dem Quantor {1,15}, ist ein Fehler aufgetreten. Dies liegt daran, dass Quantifizierer nicht auf Anker angewendet werden können, wie z. B. den Anfangs-der-String-Anker ^.
Lösung mit Lookahead
Um die Zeichenlänge effektiv einzuschränken, müssen Sie kann einen positiven Lookahead verwenden, der am Anfang der Zeichenfolge verankert ist:
^(?=.{1,15}$)[a-zA-Z0-9]*[^$%^&*;:,<>?()"]*
Dieser Lookahead stellt sicher, dass die nachfolgende Zeichenfolge mit 1 bis übereinstimmt 15 Zeichen (angegeben durch den Quantifizierer {1,15}) und endet unmittelbar nach der Übereinstimmung. Der $-Anker gibt das Ende der Zeichenfolge an.
Vermeidung begrenzender Quantifizierer
Verwendung eines Quantifizierers am Ende des regulären Ausdrucks, z. B. ^[a-zA- Z0-9]*[^$%^&*;:,<>?()"]{1,15}$ würde die Länge falsch einschränken von nur der zweiten Zeichenklasse auf 1 bis 15 Zeichen. Die Länge der gesamten Zeichenfolge wird dadurch nicht begrenzt.
So funktioniert der Lookahead
Der Lookahead (?= .{1,15}$) wertet die folgenden 1 bis 15 Zeichen aus, einschließlich des Newline-Zeichens am Ende der Zeichenfolge (aufgrund des $-Ankers). Wenn diese Bedingung erfüllt ist, Der Ausdruck gibt „true“ zurück, andernfalls „false“.
Umgang mit Newline-Sequenzen
Wenn Ihre Eingabe Newline-Sequenzen enthalten kann, können Sie den Platzhalter „[sS] portable any“ ersetzen -Zeichenkonstrukt:
^(?=[\s\S]{1,15}$)[a-zA-Z0-9]*[^$%^&*;:,<>?()"]*
Das obige ist der detaillierte Inhalt vonWie kann ich die Zeichenlänge in regulären Ausdrücken mithilfe von Lookahead einschränken?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!