Verwenden von Lookaheads zum Einschränken der Zeichenlänge in regulären Ausdrücken
Bei der Arbeit mit regulären Ausdrücken ist es oft notwendig, die Anzahl der übereinstimmenden Zeichen zu begrenzen ein bestimmtes Muster. Der Versuch, Quantifizierer auf Anker anzuwenden, wie im folgenden Beispiel zu sehen ist, kann jedoch zu Fehlern führen:
var test = /^(a-z|A-Z|0-9)*[^$%^&*;:,<>?()""']*${1,15}/ // Uncaught SyntaxError: Invalid regular expression
Um diese Einschränkung zu überwinden, können wir einen Lookahead verwenden, der am Anfang der Eingabezeichenfolge verankert ist.
^(?=.{1,15}$)[a-zA-Z0-9]*[^$%^&*;:,<>()?""']*$
Dieser Lookahead stellt sicher, dass die nachfolgenden Zeichen die folgenden Bedingungen erfüllen:
Durch die Verwendung dieses Ansatzes beschränken wir effektiv die Länge der gesamten Eingabezeichenfolge auf 15 Zeichen und lassen gleichzeitig zu, dass das angegebene Muster innerhalb dieser Grenze übereinstimmt.
Wichtige Hinweise
Das obige ist der detaillierte Inhalt vonWie können Lookaheads bei der Begrenzung der Zeichenlänge in Regex helfen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!