Corresponder cadeia inteira

Qual é a expressão regular (em JavaScript, se for importante) corresponder apenas se o texto for uma correspondência exata? Ou seja, não deve haver caracteres extras na outra extremidade da string.

Por exemplo, se eu estou tentando corresponder para abc , então 1abc1 , 1abc e abc1 não corresponderiam.

Use os delimitadores inicial e final: ^abc$

Depende. Você poderia

 string.match(/^abc$/) 

Mas isso não corresponderia à seguinte string: ‘as primeiras 3 letras do alfabeto são abc. não abc123 ‘

Eu acho que você quer 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ê, aconselho não 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 resources. Para mim, uma regra geral é que para uma comparação simples de strings use uma expressão condicional, para um padrão mais dynamic use uma expressão regular.

mais sobre JavaScript regex: https://developer.mozilla.org/en/JavaScript/Guide/Regular_Expressions

“^” Para o início da linha “$” para o final. Por exemplo.:

 var re = /^abc$/; 

Corresponde “abc” mas não “1abc” ou “abc1”. Você pode aprender mais em https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Guide/Regular_Expressions