React Native: <string> .matchAll ist keine Funktion

Nov 20 2020

Beim Ausführen meiner React Native-App wird ein seltsamer Fehler angezeigt:

Einige Beispielcodes:

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

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

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

Protokollausgabe:

url: <as expected>
typeof url: string

Fehlermeldung:

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

Alles funktioniert gut unter iOS, der Fehler tritt nur unter Android auf.

Ziemlich aktuelle Umgebung, alle npmPakete vor ein paar Tagen aktualisiert .

Hat jemand die geringste Ahnung, wo er überhaupt nach einer Lösung suchen soll?

Antworten

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

Ich habe das gleiche Problem. String.matchAllfunktioniert nicht für Android. Sie sollten matchstattdessen verwenden matchAll.

Beispiel:

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

Sie erhalten einen Array-Match-Regex