Cela dépend. Vous pourriez
string.match(/^abc$/)
Mais cela ne correspondrait pas à la chaîne suivante : "les 3 premières lettres de l'alphabet sont abc. et non abc123".
Je pense que vous voudriez utiliser \b
(limites des 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 concret : http://jsfiddle.net/uu5VJ/
Si la première solution vous convient, je vous déconseille de l'utiliser.
Cela signifie que vous pouvez avoir quelque chose comme ce qui suit :
var strs = ['abc', 'abc1', 'abc2']
for (var i = 0; i < strs.length; i++) {
if (strs[i] == 'abc') {
//do something
}
else {
//do something else
}
}
Alors que vous pourriez utiliser
if (str[i].match(/^abc$/g)) {
//do something
}
Cela nécessiterait beaucoup plus de ressources. Pour moi, la règle générale est la suivante : pour une simple comparaison de chaînes de caractères, utilisez une expression conditionnelle ; pour un motif plus dynamique, utilisez une expression régulière.
Plus d'informations sur les regex JavaScript : https://developer.mozilla.org/en/JavaScript/Guide/Regular_Expressions
6 votes
Pour les novices en matière de regex, il existe deux bonnes réponses à cette question, en fonction de ce que vous recherchez. Le demandeur veut vraiment
\babc\b
ce qui permettrait, par exemple, de123 abc 123
pour correspondre àabc
(mais pas les exemples négatifs comme dans la question) ; cependant,^abc$
s'assurera quea
est au début de la chaîne etc
est à la fin - sinon il ne correspondra pas.