Was ist der reguläre Ausdruck (in JavaScript, wenn es darauf ankommt), der nur übereinstimmt, wenn der Text genau übereinstimmt? Das heißt, am anderen Ende der Zeichenfolge sollten sich keine zusätzlichen Zeichen befinden.
Zum Beispiel, wenn ich bin versucht zu passen abc
, dann 1abc1
, 1abc
und abc1
würde nicht überein.
\babc\b
, was es beispielsweise ermöglichen würde,123 abc 123
zu passenabc
(aber nicht die negativen Beispiele wie in der Frage); Stellen Sie^abc$
jedoch sicher, dass diesa
am Anfang undc
am Ende der Zeichenfolge steht. Andernfalls stimmt es nicht überein.Antworten:
Verwenden Sie die Start- und Endbegrenzer:
^abc$
quelle
^abc def ghi$
/^(?:abc|def)$/
oder/^(abc|def)$/
. Wenn die Gruppe nicht verwendet wird,/^abc|def$/
stimmt sieabc
am Anfang der Zeichenfolge ODERdef
am Ende der Zeichenfolge überein .Es hängt davon ab, ob. Du könntest
Das würde aber nicht mit der folgenden Zeichenfolge übereinstimmen: 'Die ersten 3 Buchstaben des Alphabets sind abc. nicht abc123 '
Ich denke, Sie würden verwenden wollen
\b
(Wortgrenzen):Live-Beispiel: http://jsfiddle.net/uu5VJ/
Wenn die erstere Lösung für Sie funktioniert, würde ich davon abraten, sie zu verwenden.
Das bedeutet, dass Sie möglicherweise Folgendes haben:
Während Sie verwenden könnten
Es wäre wesentlich ressourcenintensiver. Für mich ist eine allgemeine Faustregel, dass für einen einfachen Zeichenfolgenvergleich ein bedingter Ausdruck verwendet wird, für ein dynamischeres Muster ein regulärer Ausdruck.
Weitere Informationen zu regulären JavaScript-Ausdrücken: https://developer.mozilla.org/en/JavaScript/Guide/Regular_Expressions
quelle
"^" Für den Anfang der Zeile "$" für das Ende. Z.B.:
Würde mit "abc" übereinstimmen, aber nicht mit "1abc" oder "abc1". Weitere Informationen finden Sie unter https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
quelle