Match chaîne entière

Quelle est l’expression régulière (en JavaScript si c’est important) pour correspondre uniquement si le texte est une correspondance exacte? C’est-à-dire qu’il ne devrait y avoir aucun caractère supplémentaire à l’autre extrémité de la chaîne.

Par exemple, si j’essaie de faire correspondre pour abc , alors 1abc1 , 1abc et abc1 ne correspondraient pas.

Utilisez les délimiteurs de début et de fin: ^abc$

Ça dépend. Vous pourriez

 ssortingng.match(/^abc$/) 

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 voulez utiliser \ b (limites de mots)

 var str = 'the first 3 letters of the alphabet are abc. not abc123'; var pat = /\b(abc)\b/g; console.log(str.match(pat)); 

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 ceci:

 var strs = ['abc', 'abc1', 'abc2'] for (var i = 0; i < strs.length; i++) { if (strs[i] == 'abc') { //do something } else { //do something else } } 

Bien que vous puissiez utiliser

 if (str[i].match(/^abc$/g)) { //do something } 

Cela demanderait beaucoup plus de ressources. Pour moi, une règle générale est que pour une simple comparaison de chaînes, utilisez une expression conditionnelle. Pour un motif plus dynamic, utilisez une expression régulière.

plus sur JavaScript regex: https://developer.mozilla.org/en/JavaScript/Guide/Regular_Expressions

“^” Pour le début de la ligne “$” pour la fin. Par exemple.:

 var re = /^abc$/; 

Correspondrait à “abc” mais pas à “1abc” ou “abc1”. Vous pouvez en apprendre plus sur https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions