React Native: <string> .matchAll non è una funzione

Nov 20 2020

Ricevo uno strano errore durante l'esecuzione della mia app React Native:

Alcuni esempi di codice:

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

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

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

Uscita registro:

url: <as expected>
typeof url: string

Messaggio di errore:

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

Funziona tutto bene su iOS, l'errore si verifica solo su Android.

Ambiente abbastanza aggiornato, ha aggiornato tutti i npmpacchetti un paio di giorni fa.

Qualcuno ha la minima idea di dove iniziare a cercare una soluzione?

Risposte

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

Ho lo stesso problema. String.matchAllnon funziona per Android. Dovresti usare matchinvece matchAll.

Esempio:

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

Otterrai un'espressione regolare della corrispondenza dell'array