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: guía completa con ejemplos



Las expresiones regulares (regexp o regex) son una herramienta poderosa para buscar, reemplazar y validar datos de texto. En JavaScript, especialmente en el entorno Node.js, las expresiones regulares se utilizan en todas partes: desde el procesamiento de logs y el análisis de URL hasta la validación de formularios y el marcado de texto. En este artículo, analizaremos los conceptos básicos del trabajo con expresiones regulares en JavaScript, veremos la sintaxis, los métodos y proporcionaremos ejemplos prácticos para Node.js.



Creación de expresiones regulares en JavaScript



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



  • Notación literal — la forma más cómoda y común: /pattern/flags.
  • Constructor RegExp — se utiliza cuando el patrón se crea dinámicamente: new RegExp('pattern', 'flags').


Ejemplos:



// Notación literalconst regexLiteral = /hello/i; // bandera i — ignorar mayúsculas/minúsculas

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

console.log(regexLiteral.test('Hello, world!')); // trueconsole.log(regexConstructor.test('HELLO')); // true


Banderas principales (modificadores)



  • i — ignorar mayúsculas/minúsculas (case-insensitive).
  • g — búsqueda global (busca todas las coincidencias, no solo la primera).
  • m — modo multilínea (los anclajes ^ y $ funcionan para cada línea).
  • s — modo "dotall" (el punto . incluye el carácter de nueva línea ).
  • u — soporte completo para Unicode.
  • y — modo "sticky" (búsqueda desde la posición actual).


Métodos de expresiones regulares en JavaScript



En JavaScript, las expresiones regulares funcionan junto con varios métodos de cadenas y del propio RegExp.



Método test()

Comprueba si hay una coincidencia en la cadena. Devuelve true o false.



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


Método exec()

Realiza una búsqueda y devuelve un array con los resultados o null. Es útil para extraer grupos.



const urlRegex = /https?:\\/\\/([^\\/]+)\\/(.*)/;const url = 'https://pythonlib.ru/regular-expressions';const match = urlRegex.exec(url);

if (match) { console.log('Dominio:', match[1]); // pythonlib.ru console.log('Ruta:', match[2]); // regular-expressions}


Métodos de cadena que trabajan con regexp



  • str.match(regex) — devuelve un array de coincidencias (o null).
  • str.matchAll(regex) — devuelve un iterador de todas las coincidencias (con grupos).
  • str.replace(regex, replacement) — reemplaza las coincidencias.
  • str.search(regex) — devuelve el índice de la primera coincidencia (-1 si no hay).
  • str.split(regex) — divide la cadena según una expresión regular.


const text = 'Código: 12345, artículo: ABC-6789';

// match — encontrar todos los dígitosconst numbers = text.match(/\\d+/g);console.log(numbers); // ['12345', '6789']

// replace — reemplazar guión por dos puntosconst cleaned = text.replace(/-/g, ':');console.log(cleaned); // 'Código: 12345, artículo: ABC:6789'

// split — dividir por comas y espaciosconst parts = text.split(/,\\s*/);console.log(parts); // ['Código: 12345', 'artículo: ABC-6789']


Patrones básicos y caracteres especiales



Para crear patrones precisos se utilizan metacaracteres y cuantificadores. Estos son los más importantes:



Caracteres básicos