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')); // trueBanderas 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')); // falseMé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 (onull).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
-
Blogs
Book Recommendations
Leer también
Code review en Rust: qué verificar y cómo dar retroalimentación en la práctica
¿Es < más rápido que <= en C++? Desmentimos mitos con ejemplos
Expresiones regulares en Java con ejemplos: en la práctica
Principios SOLID en JavaScript: de la teoría a la práctica con ejemplos de código
Cómo mostrar datos en pruebas de Go: secretos de t.Log() y t.Logf() en 2025