Javascript String matchAll ()

O método JavaScript String matchAll () retorna um iterador de resultados da correspondência de uma string com uma expressão regular.

A sintaxe do matchAll()método é:

 str.matchAll(regexp)

Aqui strestá uma corda.

Parâmetros matchAll ()

O matchAll()método inclui:

  • regexp - Um objeto de expressão regular (o argumento é implicitamente convertido em RegExpse for um não RegExpobjeto)

Nota: Se o RegExpobjeto não tiver a /gbandeira, um TypeErrorserá lançado.

Valor de retorno de matchAll ()

  • Retorna um iterador contendo as correspondências, incluindo os grupos de captura.

Observação : cada item do iterador retornado terá as seguintes propriedades adicionais:

  • groups - Um objeto de grupos de captura nomeados tendo chaves como nomes e valores como correspondências capturadas.
  • index - O índice de pesquisa onde o resultado foi encontrado.
  • input - Uma cópia da string de pesquisa.

Exemplo 1: usando 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); )

Resultado

 ('JavaScript', índice: 14, entrada: 'Estou aprendendo JavaScript, não Java.', Grupos: indefinido) ('Java', índice: 29, entrada: 'Estou aprendendo JavaScript, não Java.', Grupos: indefinido)

Aqui, o iterador retornado é iterado usando o for… ofloop.

Exemplo 2: Usando 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'))`) )

Resultado

Encontrado "nome é Albert." no índice 3. Nome capturado = Albert Encontrado "NOME é Soyuj." no índice 24. Nome capturado = Soyuj

Aqui, usamos uma expressão regular para corresponder a uma determinada parte da string. Podemos capturar certos grupos na partida usando matchAll()melhor do que match().

Leitura recomendada: correspondência de string JavaScript ()

Artigos interessantes...