Saltar al contenido principal

Expresiones regulares

@serverSerrverlesskiy

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

search

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

the complexity of using

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

search

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.

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.

Uso

pressing the button

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.

Editor en vivo
Resultado
Loading...

En el ejemplo, la expresión regular busca la subcadena banana en la cadena str.

Anclajes

anchor

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 - $.

Editor en vivo
Resultado
Loading...

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

Flag

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

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.

Editor en vivo
Resultado
Loading...

Intente eliminar el indicador i del ejemplo.

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?

Problem

Escribe en Discord o Telegram chat y suscríbete a nuestras noticias

Preguntas

Question

¿Para qué sirven las expresiones regulares?

  1. Crea plantillas
  2. Manipulación de cadenas
  3. Edición de línea

¿Qué carácter se usa para crear literalmente una expresión regular?

  1. Barra inclinada /
  2. Barra invertida \
  3. Corchetes []

¿Qué forma de crear una expresión regular no permite un mayor cambio dinámico de los valores dados?

  1. En un literal
  2. En diseño
  3. 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.

EnglishMoji!

Enlaces

  1. Learn JavaScript
  2. MDN Web Docs
  3. JS RegExp

Contributors ✨

Thanks goes to these wonderful people (emoji key):


IIo3iTiv


Dmitriy Vasilev

💵

Resoner2005

🐛 🎨 🖋

Navernoss

🖋 🐛 🎨

EnglishMoji!