Get to know MDN better
Esta página foi traduzida do inglês pela comunidade. Saiba mais e junte-se à comunidade MDN Web Docs.
This feature is well established and works across many devices and browser versions. It’s been available across browsers since janeiro de 2020.
O método matchAll() retorna um iterador de todos os resultados correspondentes a uma string em relação a uma expressão regular, incluindo grupos de captura.
Um objeto de expressão regular.
Se um objeto obj não-RegExp for passado, ele será convertido implicitamente em um RegExp usando new RegExp(obj).
O objeto RegExp deve ter o sinalizador (flag) /g, caso contrário, um TypeError será retornado.
Um iterador (que não é um iterável reinicializável).
Antes da adição do matchAll() ao JavaScript, era possível usar chamadas regexp.exec (e regexes com a sinalização (flag) /g) em um loop para obter todas as correspondências:
Com o matchAll() disponível, você pode evitar o loop while e executar com g.
Em vez disso, usando o matchAll(), você obtém um iterador para usar com o mais conveniente for...of, array spread ou construções Array.from():
matchAll() retornará uma exceção se o sinalizador (flag) g estiver ausente.
matchAll() cria internamente um clone da regexp - portanto, ao contrário de regexp.exec(), o lastIndex não muda conforme a string é verificada.
Outra razão convincente para usar matchAll() é o acesso aprimorado para capturar grupos.
Os grupos de captura são ignorados ao usar match() com o sinalizador global /g:
Usando o matchAll(), você pode acessar os grupos de captura facilmente:
| ECMAScript® 2027 Language Specification # sec-string.prototype.matchall |
Enable JavaScript to view this browser compatibility table.
This page was last modified on 24 de jun. de 2025 by MDN contributors.
Your blueprint for a better internet.
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998–2026 by individual mozilla.org contributors. Content available under a Creative Commons license.