Expresiones Regulares en JavaScript
Introducción a las Expresiones Regulares (Regex) en JavaScript
Las expresiones regulares, comúnmente conocidas como regex, son secuencias de caracteres que forman patrones de búsqueda. Son herramientas esenciales en la programación para tareas de procesamiento de texto como buscar, editar y manipular datos de cadenas. La regex se utiliza en diversos campos como la validación de datos, el análisis sintáctico, el resaltado de sintaxis y más.
Por ejemplo, puedes validar rápidamente una dirección de correo electrónico en JavaScript:
const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
console.log(emailRegex.test("[email protected]")); // trueNota: Este es un patrón simplificado. Para validación en producción, considera reglas más estrictas o bibliotecas especializadas.
Dónde se utiliza Regex:
- Desarrollo web: Validación de entradas de formularios, análisis de URLs y búsqueda dentro del contenido.
- Análisis de datos: Extracción de patrones específicos de grandes conjuntos de datos.
- Edición de texto: Búsqueda y reemplazo de texto en documentos o repositorios de código.
- Lenguajes de programación: La mayoría de los lenguajes de programación modernos, incluido JavaScript, admiten regex.
Referencia rápida: Banderas y Cuantificadores
| Categoría | Símbolo/Bandera | Descripción |
|---|---|---|
| Banderas | i | Coincidencia sin distinguir mayúsculas y minúsculas |
g | Coincidencia global (encuentra todas las coincidencias) | |
m | Modo multilínea (^ y $ coinciden con los límites de línea) | |
s | Modo dotall (. coincide con saltos de línea). Requiere soporte ES2018+. | |
u | Modo Unicode | |
y | Modo pegajoso (solo coincide desde lastIndex) | |
| Cuantificadores | * | 0 o más veces |
+ | 1 o más veces | |
? | 0 o 1 vez | |
{n} | Exactamente n veces | |
{n,} | n o más veces | |
{n,m} | Entre n y m veces |
Objetivos de aprendizaje
Al explorar los siguientes temas, obtendrás una comprensión completa de regex en JavaScript:
- Patrones y banderas: Aprende los fundamentos para construir patrones regex y el impacto de diferentes banderas (
i,g,m,s,u,y) en el comportamiento de regex. - Clases de caracteres: Comprende cómo coincidir con diferentes tipos de caracteres utilizando conjuntos predefinidos.
- Soporte Unicode: Descubre el uso de la bandera
uy los escapes de propiedades Unicode para manejar texto multilingüe. - Anclas: Utiliza anclas como
^y$para coincidir con el inicio y el final de las cadenas. - Modo multilínea: Implementa la bandera
mpara habilitar la coincidencia de cadenas multilínea. - Límites de palabra: Emplea
`\b`para detectar límites de palabra dentro del texto. - Escapar caracteres especiales: Aprende a escapar caracteres especiales para incluirlos en los patrones.
- Conjuntos y rangos: Define conjuntos de caracteres y rangos para una coincidencia más flexible.
- Cuantificadores: Utiliza cuantificadores (
+,*,?,{n}) para especificar el número de ocurrencias. - Cuantificadores codiciosos y perezosos: Diferencia entre cuantificadores codiciosos y perezosos para controlar el comportamiento de la coincidencia.
- Grupos de captura: Utiliza paréntesis para capturar grupos de caracteres para su uso posterior.
- Retroreferencias: Reutiliza grupos capturados dentro de la misma regex mediante retroreferencias.
- Alternancia: Coincide con uno de varios patrones posibles utilizando el operador de alternancia (
|). - Lookahead y Lookbehind: Aplica lookahead y lookbehind para aserciones de ancho cero.
- Retroceso catastrófico: Identifica y mitiga problemas de rendimiento causados por el retroceso.
Al finalizar estas lecciones, serás competente en la creación de patrones regex efectivos para diversas tareas de procesamiento de texto en JavaScript.