React Native: <string> .matchAll não é uma função

Nov 20 2020

Recebo um erro estranho ao executar meu aplicativo React Native:

Alguns exemplos de código:

const { url } = <incoming object>;
const reURL   = <my regex>;

console.debug('url:', url);
console.debug('typeof url:', typeof url);

matches = [...url.matchAll(reURL)];

Saída de log:

url: <as expected>
typeof url: string

Mensagem de erro:

TypeError: url.matchAll is not a function. (In 'url.matchAll(reURL)', 'url.matchAll' is undefined)

Tudo funciona bem no iOS, o erro só ocorre no Android.

Ambiente bastante atualizado, todos os npmpacotes atualizados há alguns dias.

Alguém tem a menor ideia de por onde começar a procurar uma solução?

Respostas

NguyễnThịThúy Nov 27 2020 at 08:17

Eu tenho o mesmo problema. String.matchAllnão funciona para Android. Você deve usar em seu matchlugar matchAll.

Exemplo:

const regex = new RegExp(text, 'ig');
const arr = string.match(regex);

Você obterá uma expressão de correspondência de matriz