Heim >Web-Frontend >js-Tutorial >Wie kann ich die Zeichenlänge in regulären Ausdrücken mithilfe von Lookahead einschränken?

Wie kann ich die Zeichenlänge in regulären Ausdrücken mithilfe von Lookahead einschränken?

Susan Sarandon
Susan SarandonOriginal
2024-12-03 16:50:11547Durchsuche

How to Restrict Character Length in Regular Expressions Using Lookahead?

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]*[^$%^&amp;*;:,<>?()"]*

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]*[^$%^&amp;*;:,<>?()"]*

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn