Expresiones regulares en JavaScript con ejemplos para Node.js

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 para Node.js



Las expresiones regulares (regex o regexp) son una herramienta poderosa para buscar, reemplazar y extraer información textual. En JavaScript y Node.js se utilizan en todas partes: desde la validación de formularios hasta el análisis de registros y el procesamiento de solicitudes. Este artículo te ayudará a dominar la sintaxis de las expresiones regulares con ejemplos prácticos que puedes ejecutar inmediatamente en Node.js.



1. Creación de expresiones regulares en JavaScript



En JavaScript existen dos formas de crear una expresión regular:



  • Sintaxis literal — el patrón se encierra entre barras /pattern/flags. Se recomienda para patrones estáticos.
  • Constructor RegExp — new RegExp('pattern', 'flags'). Se utiliza si el patrón se forma dinámicamente.


// Forma literalconst regexLiteral = /hello/i;

// Constructor RegExpconst pattern = 'hello';const regexConstructor = new RegExp(pattern, 'i');

console.log(regexLiteral.test('Hello World')); // trueconsole.log(regexConstructor.test('Hello World')); // true


2. Métodos principales para trabajar con expresiones regulares



En Node.js y los navegadores están disponibles cuatro métodos clave para trabajar con regex. Analicemos cada uno con ejemplos.



Método test()

Verifica si la cadena contiene una coincidencia con el patrón. Devuelve true o false.



const emailPattern = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$/;console.log(emailPattern.test('user@example.com')); // trueconsole.log(emailPattern.test('invalid-email')); // false


Método exec()

Busca una coincidencia y devuelve un array con detalles (la coincidencia misma, grupos, índice, cadena de entrada). Si no hay coincidencias — null.



const text = 'Precio: 1500 rublos, descuento: 300 rublos';const regex = /(\\d+)\\srublos/g;let match;

while ((match = regex.exec(text)) !== null) { console.log(`Encontrado: ${match[1]} rublos`); // Salida: "Encontrado: 1500 rublos" // Salida: "Encontrado: 300 rublos"}


Método match()

Se invoca sobre la cadena. Devuelve un array de coincidencias (con la bandera g) o información detallada (sin la bandera g).



const logLine = 'Error 404: página no encontrada';const errorRegex = /(\\d{3}):\\s(.+)/;const result = logLine.match(errorRegex);

console.log(result[0]); // '404: página no encontrada'console.log(result[1]); // '404'console.log(result[2]); // 'página no encontrada'


Método replace()

Reemplaza las coincidencias con la cadena especificada o el resultado de una función. Es ideal para formatear datos.



const phone = '+7 (999) 123-45-67';const cleanPhone = phone.replace(/[\\s\\-\\(\\)\\+]/g, '');console.log(cleanPhone); // '79991234567'

// Reemplazo usando gruposconst date = '2024-01-15';const formattedDate = date.replace(/(\\d{4})-(\\d{2})-(\\d{2})/, '$3.$2.$1');console.log(formattedDate); // '15.01.2024'


3. Símbolos y banderas principales de las expresiones regulares



Para trabajar eficazmente con regex, es necesario comprender los metacaracteres y banderas básicos. Aquí están los clave:



Símbolos de búsqueda

  • . — cualquier carácter (excepto salto de línea)
  • \\d — dígito (0-9)
  • \\w — letra, dígito o guion bajo
  • \\s — carácter de espacio en blanco
  • ^ — inicio de la cadena
  • $ — final de la cadena
  • * — 0 o más repeticiones
  • + — 1 o más repeticiones
  • ? — 0 o 1 repetición
  • {n,m} — de n a m repeticiones


Banderas

  • g — búsqueda global (todas las coinci

Blogs

Book Recommendations