JavaScriptProgramación

Descubre cómo usar String.prototype.matchAll() en JavaScript

Aprende a mejorar tus patrones de búsqueda con esta función avanzada

La función String.prototype.matchAll() es una herramienta poderosa en JavaScript que permite realizar coincidencias regulares más precisas y controladas. A diferencia de la función match(), matchAll() devuelve un iterable que contiene todos los resultados de las coincidencias, lo que facilita el procesamiento de múltiples coincidencias en una sola llamada. Esta función es especialmente útil cuando se trabaja con patrones complejos y se necesita garantizar que se encuentren todas las coincidencias posibles.

Ejemplo 1: Encontrar todas las ocurrencias de una expresión regular en una cadena


const cadena = "Hola, ¿cómo estás? Hola, genial";
const patron = /Hola/gi;

const resultado = cadena.matchAll(patron);

for (const [, coincidencia] of resultado) {
  console.log(coincidencia);
}

En este ejemplo, se busca todas las ocurrencias de la palabra «Hola» en una cadena de texto utilizando la expresión regular /Hola/gi. El método matchAll() devuelve un objeto Iterable que contiene todos los resultados de las coincidencias, y se itera sobre ellos para mostrar cada coincidencia en la consola.

Ejemplo 2: Encontrar palabras clave en una cadena de texto


const texto = "La mejor pizza es la margarita, sin duda.";
const palabrasClave = /pizza|margarita/gi;

const resultado = texto.matchAll(palabrasClave);

for (const [, palabra] of resultado) {
  console.log(palabra);
}

En este ejemplo, se buscan las palabras «pizza» y «margarita» en un texto utilizando la expresión regular /pizza|margarita/gi. El método matchAll() devuelve todos los resultados de las coincidencias, que se itera sobre para mostrar cada palabra clave encontrada en la consola.

Ejemplo 3: Encontrar y reemplazar subcadenas con expresiones regulares


const texto = "Vamos a ver la película de los Hulkes";
const patron = /Hulkes/gi;
const reemplazo = "Avengers";

const resultado = texto.matchAll(patron);
let contador = 0;

for (const [, coincidencia] of resultado) {
  contador++;
  texto = texto.replace(coincidencia, reemplazo);
  console.log(`Coincidencia ${contador}:`, coincidencia);
}

En este ejemplo, se busca la palabra «Hulkes» en un texto utilizando la expresión regular /Hulkes/gi. Una vez encontrada, se reemplaza por la palabra «Avengers». El método matchAll() devuelve todos los resultados de las coincidencias, y se itera sobre ellos para mostrar cada coincidencia en la consola y realizar el reemplazo correspondiente.

Ejemplo 4: Encontrar palabras compuestas en una cadena


const texto = "La mejor pizza es la margarita, sin duda.";
const patron = /(pizza|margarita)/gi;

const resultado = texto.matchAll(patron);

for (const [, palabra] of resultado) {
  console.log(palabra);
}

En este ejemplo, se buscan las palabras «pizza» y «margarita» en un texto utilizando la expresión regular /(pizza|margarita)/gi. El método matchAll() devuelve todos los resultados de las coincidencias, que se itera sobre para mostrar cada palabra compuesta encontrada en la consola.

Conclusión

Utilizar String.prototype.matchAll() en tus proyectos puede mejorar significativamente la eficiencia y precisión de tus patrones de búsqueda. Asegúrate de comprender su funcionamiento y cómo se diferencia de otras funciones similares, como match(), para aplicarla con éxito en tus proyectos futuros. Con la ayuda de esta herramienta avanzada, podrás manejar patrones complejos y garantizar que no se omitan coincidencias importantes.

Deja una respuesta

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.