¿Cuál es la expresión regular (en JavaScript si es importante) para que solo coincida si el texto es una coincidencia exacta? Es decir, no debe haber caracteres adicionales en el otro extremo de la cadena.
Por ejemplo, si estoy tratando de igualar para abc
, a continuación 1abc1
, 1abc
y abc1
que no coinciden.
\babc\b
, lo que permitiría, por ejemplo,123 abc 123
hacer coincidirabc
(pero no los ejemplos negativos como en la pregunta); sin embargo,^abc$
se asegurará de quea
esté al principio de la cadena yc
al final; de lo contrario, no coincidirá.Respuestas:
Use los delimitadores de inicio y fin:
^abc$
fuente
^abc def ghi$
/^(?:abc|def)$/
o/^(abc|def)$/
. De lo contrario, si el grupo no se usa,/^abc|def$/
coincidiráabc
al comienzo de la cadena Odef
al final de la cadena.Depende. Tú podrías
Pero eso no coincidiría con la siguiente cadena: 'las primeras 3 letras del alfabeto son abc. no abc123 '
Creo que te gustaría usar
\b
(límites de palabras):Ejemplo en vivo: http://jsfiddle.net/uu5VJ/
Si la solución anterior funciona para usted, le aconsejaría que no la use.
Eso significa que puede tener algo como lo siguiente:
Si bien podrías usar
Sería considerablemente más intensivo en recursos. Para mí, una regla general es que para una comparación de cadena simple use una expresión condicional, para un patrón más dinámico use una expresión regular.
Más sobre expresiones regulares de JavaScript: https://developer.mozilla.org/en/JavaScript/Guide/Regular_Expressions
fuente
"^" Para el comienzo de la línea "$" para el final de la misma. P.ej.:
Coincidiría con "abc" pero no con "1abc" o "abc1". Puede obtener más información en https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
fuente