Las expresiones regulares son patrones utilizados para buscar y manipular texto en JavaScript. Son extremadamente poderosas y flexibles, y pueden ser utilizadas para validar datos, extraer información o reemplazar texto en una cadena. En este artículo, exploraremos los fundamentos de las expresiones regulares en JavaScript, desde la sintaxis básica hasta algunos ejemplos prácticos.
Una expresión regular, también conocida como regex o regexp, es una secuencia de caracteres que define un patrón de búsqueda. Este patrón puede ser utilizado para encontrar coincidencias en cadenas de texto, realizar validaciones o reemplazar partes de una cadena.
En JavaScript, las expresiones regulares se crean utilizando la clase RegExp
o utilizando la sintaxis literal /patrón/
. Por ejemplo, la expresión regular /abc/
buscará el patrón "abc" en una cadena de texto.
Las expresiones regulares están compuestas por caracteres y metacaracteres. Los caracteres normales simplemente coinciden con ellos mismos en la cadena de texto. Por ejemplo, la expresión regular /abc/
buscará la secuencia "abc" en una cadena.
Los metacaracteres son caracteres especiales que tienen un significado especial en las expresiones regulares. Algunos de los metacaracteres más utilizados son:
.
: coincide con cualquier carácter, excepto con un salto de línea.*
: coincide con cero o más repeticiones del carácter o grupo anterior.+
: coincide con una o más repeticiones del carácter o grupo anterior.?
: coincide con cero o una repetición del carácter o grupo anterior.[]
: define un conjunto de caracteres permitidos. Por ejemplo, [abc]
coincidirá con "a", "b" o "c".()
: agrupa caracteres o subexpresiones para realizar operaciones más complejas.En JavaScript, las expresiones regulares tienen varios métodos útiles para trabajar con cadenas de texto. Algunos de los métodos más comunes son:
test()
: verifica si una cadena de texto contiene una coincidencia con la expresión regular. Retorna true
o false
.exec()
: busca la primera coincidencia en una cadena de texto y retorna un objeto con información sobre la coincidencia.match()
: busca coincidencias en una cadena de texto y retorna un array con todas las coincidencias encontradas.replace()
: busca una coincidencia en una cadena de texto y la reemplaza por otra cadena o por el resultado de una función.search()
: busca una coincidencia en una cadena de texto y retorna la posición de la primera coincidencia encontrada.split()
: divide una cadena de texto en un array de subcadenas utilizando una expresión regular como delimitador.Veamos algunos ejemplos prácticos de cómo utilizar expresiones regulares en JavaScript:
const emailRegex = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
const email = "example@example.com";
if (emailRegex.test(email)) {
console.log("La dirección de correo electrónico es válida.");
} else {
console.log("La dirección de correo electrónico no es válida.");
}
const text = "Mi número de teléfono es 123-456-7890 y mi otro número es 987-654-3210.";
const phoneRegex = /\d{3}-\d{3}-\d{4}/g;
const phoneNumbers = text.match(phoneRegex);
console.log(phoneNumbers); // ["123-456-7890", "987-654-3210"]
const text = "Hola, mi nombre es [nombre].";
const name = "John";
const nameRegex = /\[nombre\]/g;
const newText = text.replace(nameRegex, name);
console.log(newText); // "Hola, mi nombre es John."