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 str
está uma corda.
Parâmetros matchAll ()
O matchAll()
método inclui:
- regexp - Um objeto de expressão regular (o argumento é implicitamente convertido em
RegExp
se for um nãoRegExp
objeto)
Nota: Se o RegExp
objeto não tiver a /g
bandeira, um TypeError
será 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… of
loop.
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 ()