Jakie wyrażenie regularne (w JavaScript, jeśli ma to znaczenie) ma być dopasowane tylko wtedy, gdy tekst jest dokładnym dopasowaniem? Oznacza to, że na drugim końcu ciągu nie powinno być żadnych dodatkowych znaków.
Na przykład, jeśli staram się dostosować do nich abc
, potem 1abc1
, 1abc
i abc1
nie pasuje.
\babc\b
, co pozwoliłoby np.123 abc 123
Dopasowaćabc
(ale nie negatywne przykłady jak w pytaniu); jednak^abc$
upewni się, żea
znajduje się on na początku łańcucha ic
na końcu - w przeciwnym razie nie będzie pasował.Odpowiedzi:
Użyj ograniczników początku i końca:
^abc$
źródło
^abc def ghi$
/^(?:abc|def)$/
lub/^(abc|def)$/
. W przeciwnym razie, jeśli grupa nie jest używana,/^abc|def$/
będzie pasowaćabc
na początku łańcucha LUBdef
na końcu ciągu.To zależy. Mógłbyś
Ale to nie pasowałoby do następującego ciągu: „pierwsze 3 litery alfabetu to abc. nie abc123 '
Myślę, że chciałbyś użyć
\b
(granice słów):Przykład na żywo: http://jsfiddle.net/uu5VJ/
Jeśli to pierwsze rozwiązanie Ci odpowiada, odradzałbym jego stosowanie.
Oznacza to, że możesz mieć coś takiego:
Chociaż możesz użyć
Wymagałoby to znacznie więcej zasobów. Dla mnie ogólną zasadą jest użycie wyrażenia warunkowego do prostego porównania ciągów, a dla bardziej dynamicznego wzorca użyj wyrażenia regularnego.
Więcej o wyrażeniach regularnych JavaScript: https://developer.mozilla.org/en/JavaScript/Guide/Regular_Expressions
źródło
"^" Na początku wiersza "$" na końcu. Na przykład.:
Dopasuje „abc”, ale nie „1abc” ani „abc1”. Możesz dowiedzieć się więcej na https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
źródło