React Native: <string> .matchAll nie jest funkcją

Nov 20 2020

Podczas uruchamiania mojej aplikacji React Native pojawia się dziwny błąd:

Przykładowy kod:

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

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

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

Wyjście dziennika:

url: <as expected>
typeof url: string

Komunikat o błędzie:

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

Wszystko działa dobrze na iOS, błąd występuje tylko na Androidzie.

Całkiem aktualne środowisko, zaktualizowałem wszystkie npmpakiety kilka dni temu.

Czy ktoś ma najmniejsze pojęcie, od czego w ogóle zacząć szukać rozwiązania?

Odpowiedzi

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

Mam ten sam problem. String.matchAllnie działa na Androida. Należy użyć matchzamiast matchAll.

Przykład:

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

Otrzymasz wyrażenie regularne odpowiadające tablicy