MatchAll de cadenas de JavaScript ()

El método JavaScript String matchAll () devuelve un iterador de resultados de hacer coincidir una cadena con una expresión regular.

La sintaxis del matchAll()método es:

 str.matchAll(regexp)

Aquí strhay una cuerda.

Parámetros matchAll ()

El matchAll()método incluye:

  • regexp: un objeto de expresión regular (el argumento se convierte implícitamente en RegExpsi no es un RegExpobjeto)

Nota: Si el RegExpobjeto no tiene la /gbandera, se TypeErrorlanzará un .

Valor de retorno de matchAll ()

  • Devuelve un iterador que contiene las coincidencias, incluidos los grupos de captura.

Nota : Cada elemento del iterador devuelto tendrá las siguientes propiedades adicionales:

  • groups - Un objeto de grupos de captura con nombre que tienen claves como nombres y valores como coincidencias capturadas.
  • index - El índice de búsqueda donde se encontró el resultado.
  • input - Una copia de la cadena de búsqueda.

Ejemplo 1: uso de matchAll ()

 const string = "I am learning JavaScript not Java."; const re = /Java(a-z)*/gi; let result = string.matchAll(re); for (match of result) ( console.log(match); )

Salida

 ('JavaScript', índice: 14, entrada: 'Estoy aprendiendo JavaScript, no Java.', Grupos: indefinido) ('Java', índice: 29, entrada: 'Estoy aprendiendo JavaScript no Java.', Grupos: indefinido)

Aquí, el iterador devuelto se repite utilizando el for… ofbucle.

Ejemplo 2: uso de matchAll para capturar grupos

 const string = "My name is Albert. YOUR NAME is Soyuj."; // expression matches case-insensitive "name is"+ any alphabets till period (.) // using named capturing groups const re = /namesiss(?(a-zA-Z)+)./gi; let found = string.matchAll(re); for (const match of found)( console.log(`Found "$(match(0))" at index $(match.index). Captured name = $(match.groups('name'))`) )

Salida

Encontrado "nombre es Albert". en el índice 3. Captured name = Albert Found "NAME is Soyuj". en el índice 24. Nombre capturado = Soyuj

Aquí, hemos usado una expresión regular para hacer coincidir una cierta porción de la cadena. Podemos capturar ciertos grupos en el partido usando matchAll()mejor que match().

Lectura recomendada: coincidencia de cadenas de JavaScript ()

Articulos interesantes...