Expresiones regulares en TypeScript: guía completa para principiantes

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 TypeScript: de la teoría a la práctica

Las expresiones regulares (regexp o regex) son una herramienta poderosa para buscar, reemplazar y validar cadenas según un patrón determinado. En TypeScript, al igual que en JavaScript, las expresiones regulares son una funcionalidad incorporada del lenguaje. Este artículo te ayudará a dominar la sintaxis, aprender a aplicar regex en la práctica y evitar errores típicos.



¿Qué es una expresión regular y cómo crearla en TypeScript?

Una expresión regular es una secuencia de caracteres que describe un patrón de búsqueda. En TypeScript existen dos formas de crear una expresión regular:

  • Sintaxis literal: /patrón/banderas
  • Constructor RegExp: new RegExp('patrón', 'banderas')

La primera forma es conveniente para patrones estáticos, la segunda cuando el patrón se forma dinámicamente.

// Sintaxis literalconst emailPattern: RegExp = /^[\\w-\\.]+@([\\w-]+\\.)+[\\w-]{2,4}$/;

// Constructor RegExpconst dynamicPattern: string = "hello";const regexFromString: RegExp = new RegExp(dynamicPattern, "gi");

console.log(emailPattern.test("test@example.com")); // trueconsole.log(regexFromString.test("Hello world")); // true


Métodos principales para trabajar con expresiones regulares

En TypeScript están disponibles tres métodos clave para trabajar con regex. Veamos cada uno con ejemplos.



Método test() — verificación de coincidencia

Devuelve true o false. Ideal para validación.

const hasNumber: RegExp = /\\d+/;console.log(hasNumber.test("abc123")); // trueconsole.log(hasNumber.test("abc"));    // false


Método exec() — búsqueda con detalles

Devuelve un array con la coincidencia e información adicional (índice, cadena original). Al usar la bandera g recuerda la posición de la última coincidencia.

const wordPattern: RegExp = /(\\w+)\\s(\\w+)/;const result = wordPattern.exec("Hello TypeScript");if (result) {    console.log(`Coincidencia completa: ${result[0]}`); // Hello TypeScript    console.log(`Primer grupo: ${result[1]}`);          // Hello    console.log(`Segundo grupo: ${result[2]}`);         // TypeScript    console.log(`Índice: ${result.index}`);             // 0}


Método match() — búsqueda de todas las coincidencias

Se llama sobre la cadena, no sobre la expresión regular. Con la bandera g devuelve un array de todas las coincidencias.

const text: string = "Precio: 100 rublos, descuento: 20 rublos";const prices: RegExp = /\\d+/g;const foundPrices: string[] | null = text.match(prices);console.log(foundPrices); // ['100', '20', '0']


Sintaxis y símbolos de uso frecuente

Para escribir expresiones regulares efectivas, necesitas conocer los símbolos básicos y sus significados.

  • . — cualquier carácter excepto salto de línea
  • \\d — dígito (equivalente a [0-9])
  • \\w — letra, dígito o guión bajo ([a-zA-Z0-9_])
  • \\s — cualquier carácter de espacio en blanco (espacio, tabulación, nueva línea)
  • ^ — inicio de la cadena
  • $ — fin de la cadena
  • * — 0 o más repeticiones
  • + — 1 o más repeticiones
  • ? — 0 o 1 repetición (hace al cuantificador perezoso)
  • [] — conjunto de caracteres (por ejemplo, [a-z] — todas las letras minúsculas)
  • () — grupo de captura
  • | — O lógico
// Ejemplos de uso de símbolosconst phonePattern: RegExp = /^\\+?7?\\d{10}$/;console.log(phonePattern.test("+79161234567")); // true

const datePattern: RegExp = /^\\d{2}\\.\\d{2}\\.\\d{4}$/;console.log(datePattern.test("31.12.2023")); // true\

Blogs

Book Recommendations