Depende. Você poderia
string.match(/^abc$/)
Mas isso não corresponderia à seguinte string: 'as 3 primeiras letras do alfabeto são abc. não abc123 '
Eu acho que você gostaria de usar \b
(limites de palavras):
var str = 'the first 3 letters of the alphabet are abc. not abc123';
var pat = /\b(abc)\b/g;
console.log(str.match(pat));
Exemplo ao vivo: http://jsfiddle.net/uu5VJ/
Se a solução anterior funcionar para você, eu não recomendaria usá-la.
Isso significa que você pode ter algo como o seguinte:
var strs = ['abc', 'abc1', 'abc2']
for (var i = 0; i < strs.length; i++) {
if (strs[i] == 'abc') {
//do something
}
else {
//do something else
}
}
Enquanto você poderia usar
if (str[i].match(/^abc$/g)) {
//do something
}
Seria consideravelmente mais intensivo em recursos. Para mim, uma regra geral é que, para uma comparação simples de cadeias, use uma expressão condicional, para um padrão mais dinâmico, use uma expressão regular.
Mais sobre expressões regulares do JavaScript: https://developer.mozilla.org/en/JavaScript/Guide/Regular_Expressions
\babc\b
, o que permitiria, por exemplo,123 abc 123
corresponder aabc
(mas não os exemplos negativos, como na pergunta); no entanto,^abc$
garantirá quea
esteja no início da sequência ec
no final - caso contrário, não corresponderá.