Introducción a las Expresiones Regulares
Las expresiones regulares (regex) son secuencias de caracteres que forman un patrón de búsqueda, empleadas para localizar y manipular texto dentro de cadenas de caracteres.
Modificadores de Patrones
Los modificadores alteran el comportamiento de la búsqueda. Por ejemplo:
| Modificador | Función |
|---|---|
| i | Ignora mayúsculas y minúsculas durante la búsqueda. |
| g | Busca todas las coincidencias en lugar de solo la primera. |
Ejemplo de uso:
const patronA = /script/g;
const patronB = /script/i;
const patronC = /script/gi;
console.log(patronA.test("Aprender JavaScript")); // false
console.log(patronB.test("Mi script favorito")); // true
const texto = "javascript, JS y SCRIPT";
console.log(texto.match(patronA)); // ["script"]
console.log(texto.match(patronC)); // ["script", "SCRIPT"]
Caracteres Metas y Escapes
Los caracteres metas definen patrones específicos:
1. Anclas de Posición
^ indica el inicio de una cadena, $ indica el final. Juntos, establecen una coincidencia exacta.
const patronExacto = /^codigo$/;
console.log(patronExacto.test("un código")); // false
console.log(patronExacto.test("codigo")); // true
2. Rangos y Conjuntos
| Patrón | Descripción |
|---|---|
| [abc] | Coincide con 'a', 'b' o 'c'. |
| [^abc] | Coincide con cualquier carácter excepto 'a', 'b', 'c'. |
| [A-Z] | Coincide con letras mayúsculas de A a Z. |
| [0-9a-zA-Z] | Coincide con caracteres alfanuméricos. |
3. Secuencias de Escape con Barra Invertida
La barra invertida (\) permite coincidencias predefinidas o caracteres literales:
| Secuencia | Función |
|---|---|
| \d | Coincide con un dígito (0-9). |
| \D | Coincide con un no dígito. |
| \w | Coincide con un carácter alfanumérico o guion bajo. |
| \W | Coincide con un no carácter de palabra. |
| \s | Coincide con un espacio en blanco. |
| \S | Coincide con un no espacio en blanco. |
4. Comodines y Cuantificadores
| Símbolo | Significado |
|---|---|
| . | Coincide con cualquier carácter excepto saltos de línea. |
| ? | Cero o una ocurrencia del carácter anterior. |
| + | Una o más ocurrencias. |
| * | Cero o más ocurrencias. |
| {n} | Exactamente n ocurrencisa. |
| {n,} | Al menos n ocurrencias. |
| {n,m} | Entre n y m ocurrencias. |
5. Alternancia y Agrupación
El operador | (o lógico) permite alternativas. Los paréntesis agrupan patrones y capturan subcadenas.
const patronAlternativo = /rojo|azul/ig;
Aplicaciones Comunes
Validación de número telefónico (11 dígitos, iniciando con 1):
const validarTelefono = /^1\d{10}$/;
Contraseña con caracteres permitidos (6-15 de longitud):
const validarContrasena = /^[a-zA-Z0-9_-]{6,15}$/;