Qué es una expresión regular y como se crea en JavaScript.
Una expresión regular es una secuencia de caracteres que conforma un patrón de búsqueda. Este patrón se utiliza para buscar dentro conjuntos de caracteres contenidos en: literales, variables, ficheros, etc. y comprobar si hay coincidencia o no en la búsqueda.
Las búsquedas con patrones tienen muchas utilidades. Por ejemplo:
- Buscar una subcadena dentro de una cadena de caracteres.
- Reemplazar partes de una cadena por otras subcadenas.
- Validar el formato de un dato.
- Formatear datos.
- Filtrar información y extraer datos que cumplan ciertas condiciones.
Un patrón es un objeto RegExp de JavaScript que se crea escribiendo caracteres entre dos barras oblicuas. Luego se puede utilizar de distintas formas, por ejemplo con el método test()
que es uno de los métodos del objeto patrón. Un ejemplo:
let patron = /verde/;
console.log (patron.test("¡Qué verde era mi valle!")); // true
Este patrón /verde/
busca el conjunto de caracteres verde en la cadena "¡Qué verde era mi valle!"
y como hay coincidencia devuelve true
.
Hay más métodos de los objetos JavaScript que manejan los patrones. Por ejemplo el método search()
del objeto String. Este método devuelve -1 si no encuentra coincidencia y un número positivo que indica la posición donde encuentra el patrón. Por ejemplo:
"!Qué verde era mi valle¡".search(patr);
devuelve un 5 que es la posición de la cadena donde empieza la palabra verde si se cuenta de izquierda a derecha en la cadena empezando por 0.
Metacaracteres en las expresiones regulares.
En los patrones se usan caracteres que tienen significados especiales y es lo que se llama metacaracteres. Por ejemplo el caracter .
en un patrón significa coincidencia con cualquier caracter. Un ejemplo:
let patr = /r..a/; // Busca una r, 2 caracteres cualesquiera y una a.
let cadena = "La casa roja";
console.log (patr.test(cadena)); // true
cadena = "La casa rosa";
console.log (patr.test(cadena)); // true
cadena = "El ron era bueno";
console.log (patr.test(cadena)); // false
cadena = "El remo se rompió";
console.log (patr.test(cadena)); // false
Hay muchos metacaracteres para crear expresiones regulares y conseguir con los patrones realizar busquedas complejas. Estos patrones evitan muchas veces tener que crear largos algoritmos de programación. Por ejemplo:
/[a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*@[a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[.][a-zA-Z]{2,5}/
este patrón sirve para comprobar si una dirección de correo electrónico tiene un formato correcto. De esta forma con esta sola línea se consigue evitar tener que idear y codificar un algoritmo que lo compruebe y cuantas menos líneas de código escritas, menos líneas de código a mantener.
Ejemplo de dos metacaracteres usados normalmente.
Metacaracter ➝ .
Significado ➝ Cualquier caracter.
Ejemplo:
let patr = /a..a./;
let cadena = "ambar";
console.log (patr.test(cadena)); // true
cadena = "amigo";
console.log (patr.test(cadena)); // false
Metacaracter ➝ \d
Significado ➝ Cualquier caracter que sea un número arábigo, es decir 0, 1 ,2 ,3 ,4 ,5 ,6 , 7 ,8 o 9
Ejemplo:
let patr = /\d/;
let cadena = "Juan tiene 18 años";
console.log (patr.test(cadena)); // true
cadena = "Juan tiene dieciocho años";
console.log (patr.test(cadena)); // false
Si necesitas más información sobre expresiones regulares y más ejemplos puedes consultar el libro Uso de expresiones regulares en JavaScript
O si lo prefieres puedes inscribirte en este curso Expresiones regulares en JavaScript
No hay comentarios:
Publicar un comentario