React Native: <string> .matchAll n'est pas une fonction

Nov 20 2020

J'obtiens une erreur étrange lors de l'exécution de mon application React Native:

Quelques exemples de code:

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

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

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

Sortie du journal:

url: <as expected>
typeof url: string

Message d'erreur:

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

Tout fonctionne bien sur iOS, l'erreur ne se produit que sur Android.

Environnement assez à jour, mis à jour tous les npmpackages il y a quelques jours.

Quelqu'un a-t-il la moindre idée par où commencer à chercher une solution?

Réponses

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

J'ai le même problème. String.matchAllne fonctionne pas pour Android. Vous devriez utiliser à la matchplace matchAll.

Exemple:

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

Vous obtiendrez un tableau de correspondance regex