Quelle est l'expression régulière (en JavaScript si cela compte) à ne correspondre que si le texte est une correspondance exacte? Autrement dit, il ne devrait y avoir aucun caractère supplémentaire à l'autre extrémité de la chaîne.
Par exemple, si je suis en train de faire correspondre pour abc
, ensuite 1abc1
, 1abc
et abc1
ne correspondrait pas.
\babc\b
, ce qui permettrait par exemple de123 abc 123
faire correspondre pourabc
(mais pas les exemples négatifs comme dans la question); cependant,^abc$
s'assurera quea
c'est au début de la chaîne etc
à la fin - sinon cela ne correspondra pas.Réponses:
Utilisez les délimiteurs de début et de fin:
^abc$
la source
^abc def ghi$
/^(?:abc|def)$/
ou/^(abc|def)$/
. Sinon, si le groupe n'est pas utilisé,/^abc|def$/
correspondraabc
au début de la chaîne OUdef
à la fin de la chaîne.Ça dépend. Vous pourriez
Mais cela ne correspondrait pas à la chaîne suivante: «les 3 premières lettres de l'alphabet sont abc. pas abc123 '
Je pense que vous voudriez utiliser
\b
(limites de mots):Exemple en direct: http://jsfiddle.net/uu5VJ/
Si l'ancienne solution fonctionne pour vous, je vous déconseille de l'utiliser.
Cela signifie que vous pouvez avoir quelque chose comme ce qui suit:
Alors que vous pourriez utiliser
Ce serait beaucoup plus gourmand en ressources. Pour moi, une règle générale est pour une simple comparaison de chaînes d'utiliser une expression conditionnelle, pour un modèle plus dynamique, utilisez une expression régulière.
Plus d'informations sur les expressions régulières JavaScript: https://developer.mozilla.org/en/JavaScript/Guide/Regular_Expressions
la source
"^" Pour le début de la ligne "$" pour la fin de celle-ci. Par exemple.:
Correspondrait à "abc" mais pas à "1abc" ou "abc1". Vous pouvez en savoir plus sur https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
la source