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



Las expresiones regulares (RegExp) son una herramienta poderosa para buscar, reemplazar y validar cadenas de texto. En JavaScript y Node.js se utilizan en todas partes: desde la validación de formularios hasta el análisis de registros. En este artículo, analizaremos los fundamentos de la sintaxis, los métodos más populares y resolveremos varios problemas prácticos.



1. Creación de una expresión regular



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



  • Notación literal (recomendada): /patron/banderas
  • Constructor new RegExp('patron', 'banderas')


Ejemplo:



// Notación literalconst regexLiteral = /hello/i;

// Constructor (útil cuando el patrón es dinámico)const pattern = 'hello';const regexConstructor = new RegExp(pattern, 'i');

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


2. Métodos principales de RegExp y String



Para trabajar con expresiones regulares en JavaScript se utilizan dos tipos de métodos: los métodos del propio objeto RegExp y los métodos de las cadenas.



2.1 Método test()

Verifica 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


2.2 Método exec()

Busca una coincidencia y devuelve un array con información detallada (o null). Es útil para extraer datos.



const str = 'Precio: 1500 rublos, descuento: 200 rublos';const priceRegex = /(\\d+)/g;let match;

while ((match = priceRegex.exec(str)) !== null) { console.log(`Número encontrado: ${match[1]}`);}// Salida:// Número encontrado: 1500// Número encontrado: 200


2.3 Método de cadena match()

Funciona de manera similar a exec(), pero se llama desde la cadena.



const text = 'JavaScript — ¡es genial! JS se usa en todas partes.';const result = text.match(/JS/g);console.log(result); // [ 'JS', 'JS' ]


2.4 Método de cadena replace()

Reemplaza las coincidencias encontradas por la cadena especificada o el resultado de una función.



const phone = '+7 (123) 456-78-90';const cleaned = phone.replace(/[\\s\\-\\(\\)\\+]/g, '');console.log(cleaned); // 71234567890

// Reemplazo usando grupos de capturaconst date = '2024-03-15';const formatted = date.replace(/(\\d{4})-(\\d{2})-(\\d{2})/, '$3.$2.$1');console.log(formatted); // 15.03.2024


2.5 Método de cadena search()

Devuelve el índice de la primera coincidencia o -1.



const sentence = 'Aprende JavaScript en PythonLib';const index = sentence.search(/javascript/i);console.log(index); // 8


3. Banderas y caracteres especiales: ejemplos prácticos



Las banderas modifican el comportamiento de la búsqueda. Las más populares:

  • g — búsqueda global (busca todas las coincidencias, no solo la primera).
  • i — búsqueda sin distinción de mayúsculas y minúsculas.
  • m — modo multilínea (los anclajes ^ y $ funcionan en cada línea).


Ejemplo con la bandera m:



const multiLineText = `Primera líneasegunda líneaTercera línea`;

// Sin la bandera mconsole.log(multiLineText.match(/^segunda/)); // null

// Con la bandera mconsole.log(multiLineText.match(/^segunda/m)); // [ 'segunda' ]


Caracteres especiales principales



Blogs

Book Recommendations

Carácter Descripción