Expresiones regulares en JavaScript con ejemplos: en la práctica

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Expresiones regulares en JavaScript con ejemplos: en la práctica

\n\n

Las expresiones regulares (RegExp) son una herramienta poderosa para buscar, reemplazar y validar texto. En JavaScript, especialmente en el entorno Node.js, se utilizan en todas partes: desde el análisis de registros hasta la validación de formularios. En este artículo, analizaremos la sintaxis, los métodos y escribiremos ejemplos prácticos que podrás usar de inmediato en tus proyectos.

\n\n

1. Conceptos básicos de sintaxis y creación de RegExp

\n\n

En JavaScript, una expresión regular se puede crear de dos maneras: mediante un literal y mediante un constructor. El literal es conveniente para patrones estáticos, el constructor para patrones dinámicos.

\n\n
// Literal (recomendado)\nconst regexLiteral = /hello/gi;\n\n// Constructor (para patrones dinámicos)\nconst pattern = "hello";\nconst flags = "gi";\nconst regexConstructor = new RegExp(pattern, flags);
\n\n

Banderas (modificadores):

\n
    \n
  • g — búsqueda global (encuentra todas las coincidencias, no solo la primera)
  • \n
  • i — búsqueda sin distinción de mayúsculas y minúsculas
  • \n
  • m — modo multilínea (los anclajes ^ y $ funcionan para cada línea)
  • \n
  • s — permite que el punto . coincida con el carácter de nueva línea
  • \n
  • u — habilita la compatibilidad completa con Unicode
  • \n
\n\n

Metacaracteres básicos:

\n
    \n
  • . — cualquier carácter, excepto nueva línea
  • \n
  • \\d — dígito (0-9)
  • \n
  • \\w — letra, dígito o guión bajo
  • \n
  • \\s — carácter de espacio en blanco (espacio, tabulación, salto de línea)
  • \n
  • ^ — inicio de línea
  • \n
  • $ — fin de línea
  • \n
  • [] — clase de caracteres (por ejemplo [a-z] — todas las letras minúsculas)
  • \n
  • () — grupo de captura
  • \n
  • | — O lógico
  • \n
\n\n

2. Métodos principales para trabajar con expresiones regulares

\n\n

En JavaScript, hay varios métodos que funcionan con RegExp. Veámoslos con ejemplos prácticos.

\n\n

2.1. test() — verificación de coincidencia

\n

El método devuelve true o false. Es ideal para validación.

\n\n
const emailPattern = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$/;\nconst emails = ["user@example.com", "invalid-email", "test@domain.co.uk"];\n\nemails.forEach(email => {\n  console.log(`${email}: ${emailPattern.test(email)}`);\n});\n// user@example.com: true\n// invalid-email: false\n// test@domain.co.uk: true
\n\n

2.2. exec() — búsqueda con detalles

\n

Devuelve un array con la coincidencia y los grupos de captura. Es útil para extraer datos.

\n\n
const logLine = "ERROR: 2023-10-15 14:30:00 - Server crash";\nconst logPattern = /^(ERROR|WARN|INFO): (\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}) - (.+)$/;\nconst result = logPattern.exec(logLine);\n\nif (result) {\n  console.log(`Nivel: ${result[1]}`);\n  console.log(`Fecha: ${result[2]}`);\n  console.log(`Mensaje: ${result[3]}`);\n}\n// Nivel: ERROR\n// Fecha: 2023-10-15 14:30:00\n// Mensaje: Server crash
\n\n

2.3. match() — búsqueda en cadena

\n

Método de cadena que devuelve un array de coincidencias. Con la bandera g — todas las coincidencias, sin ella — la primera con grupos.

\n\n
const text = "Tel: +7(999)123-45-67, +7(495)765-43-21";\nconst phonePattern = /\\+7\\(\\d{3}\\)\\d{3}-\\d{2}-\\d{2}/g;\nconst phones = text.match(phonePattern);\n\nconsole.log(phones);\n// ['+7(999)123-45-67', '+7(495)765-43-21']
\n\n

2.4. replace() — reemplazo de texto

\n

Permite reemplazar coincidencias con una nueva cadena. Admite caracteres especiales, como $1 para grupos de captura.

\n\n
const messyDate = "2023/10/15";\nconst cleanDate = messyDate.replace(/(\\d{4})\\/(\\d{2})\\/(\\d{2})/, "$3.$2.$1");\nconsole.log(cleanDate); // 15.10.2023\n\n                

Blogs

Book Recommendations