Expresiones regulares
Las expresiones regulares (inglés regular expressions) es un lenguaje formal para buscar y manipular cadenas en texto basado en el uso de metacaracteres.
Las expresiones regulares le permiten:
- Buscar texto en una cadena
- Reemplazar subcadenas en una cadena
- Extraer información de una cadena
JavaScript, junto con Perl, es uno de los lenguajes de programación en los que la compatibilidad con expresiones regulares está integrada directamente en el lenguaje .
Video
Dificultad de uso
La desventaja de las expresiones regulares es que a menudo se ven extrañas e incluso intimidantes. Esto es especialmente cierto para las plantillas más complejas.
let regExp = /^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/
Definición de expresiones regulares
La definición de una expresión regular es la creación de una plantilla, sobre la base de la cual se realizará el trabajo con cadenas. En JavaScript, una expresión regular es un objeto que se puede definir de dos maneras.
- Literal
- Diseño
Definición de expresiones regulares usando literales. Para las expresiones regulares, las barras diagonales / ... /
actúan como literales, juegan el mismo papel que los corchetes ' ... '
al crear cadenas.
let regExp = /muestra/
Si decide crear expresiones regulares utilizando literales, debe tener en cuenta que este método de creación no permite cambios dinámicos de los valores establecidos. Esto se debe a que los literales de expresiones regulares provocan una precompilación cuando se analiza el script.
Definición de expresiones regulares usando un constructor.
let regExp = new RegExp('muestra')
La compilación de la expresión regular creada por usando el constructor ocurre en el momento de la ejecución del script. Esta forma de crear debe usarse si su expresión regular se crea a partir de una cadena generada dinámicamente.
Uso
Usando expresiones regulares, veamos un ejemplo:
let regExp = /banana/
Con este código hemos creado una expresión regular simple que busca la cadena banana
. Para probar una expresión regular, puede usar el método .test(string)
, el resultado del método es un valor boolean
.
En el ejemplo, la expresión regular busca la subcadena banana
en la cadena str
.
Anclajes
Los anclajes anclan un patrón al principio o al final de una cadena. Para enlazar al principio de una línea, use ^
, y al final - $
.
Usando este patrón /banana/
buscará banana
en toda la cadena. Si necesita verificar una coincidencia completa de una cadena con un patrón, debe usar los anclajes /^banana$/
. El método .test()
devolverá true
solo si la cadena completa es banana
.
Banderas
Las banderas se utilizan para extender la búsqueda realizada por expresiones regulares.
g
- al buscar, busca todas las coincidencias;i
- la búsqueda no distingue entre mayúsculas y minúsculas[Z-z]
;m
- modo multilínea;s
- activa el modo dotall, en el que el punto.
puede coincidir con el carácter de nueva línea;y
- busca a partir del carácter que está en la posición de la propiedad lastindex de la expresión regular actual;u
- habilita la compatibilidad con Unicode.
Uso de banderas de diferentes maneras para crear un patrón de expresión regular
- Литерал
- Diseño
let regExp = /patrón/bandera // prettier-ignore
Tenga en cuenta que las banderas son una parte esencial de una expresión regular. Las banderas no se pueden agregar o eliminar más tarde. Las banderas también se pueden combinar.
Intente eliminar el indicador i
del ejemplo.
let regExp = new RegExp('plantilla', 'bandera')
Tenga en cuenta que las banderas son una parte esencial de una expresión regular. Las banderas no se pueden agregar o eliminar más tarde. Las banderas también se pueden combinar.
Intente eliminar el indicador i
del ejemplo. La búsqueda ahora distingue entre mayúsculas y minúsculas.
Total
El tema es muy extenso y rara vez lo usamos en el desarrollo, por lo que si está interesado, puede familiarizarse con él con más detalle aquí, aquí y aquí.
¿Problemas?
Escribe en Discord o Telegram chat y suscríbete a nuestras noticias
Preguntas
¿Para qué sirven las expresiones regulares?
- Crea plantillas
- Manipulación de cadenas
- Edición de línea
¿Qué carácter se usa para crear literalmente una expresión regular?
- Barra inclinada
/
- Barra invertida
\
- Corchetes
[]
¿Qué forma de crear una expresión regular no permite un mayor cambio dinámico de los valores dados?
- En un literal
- En diseño
- Con cualquier método, se permite el cambio dinámico
Para comprender cuánto ha aprendido en esta lección, realice la prueba en aplicación móvil en nuestra escuela sobre este tema.
Enlaces
Contributors ✨
Thanks goes to these wonderful people (emoji key):
IIo3iTiv | Dmitriy Vasilev 💵 | Resoner2005 🐛 🎨 🖋 | Navernoss 🖋 🐛 🎨 |