Heim >Web-Frontend >js-Tutorial >Wie können Lookaheads bei der Begrenzung der Zeichenlänge in Regex helfen?

Wie können Lookaheads bei der Begrenzung der Zeichenlänge in Regex helfen?

Barbara Streisand
Barbara StreisandOriginal
2024-11-17 12:31:02591Durchsuche

How Can Lookaheads Help in Limiting Character Length in Regex?

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:

  • Sie entsprechen dem darin angegebenen Muster die Zeichenklasse [a-zA-Z0-9]1.
  • Ihre Länge liegt zwischen 1 und 15 Zeichen, wie von angegeben der Quantor {1,15}.
  • Ihnen folgt das Ende der Zeichenfolge, dargestellt durch das Dollarzeichen $ Anker.

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

  • Denken Sie bei der Verwendung dieser Methode daran, „Zeichenklassen“ anstelle von „Gruppen“ zu verwenden Quantifizierer.
  • Lookaheads sind Behauptungen mit der Breite Null, d. anstelle von [sS]*, um jedem Zeichen zu entsprechen, einschließlich Zeilenumbrüche.

$%^&*;:,<>()?""'

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!

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