React Native: <string> .matchAll не является функцией

Nov 20 2020

Я получаю странную ошибку при запуске приложения React Native:

Пример кода:

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

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

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

Вывод журнала:

url: <as expected>
typeof url: string

Сообщение об ошибке:

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

На iOS все работает нормально, ошибка возникает только на Android.

Довольно свежая среда, обновил все npmпакеты пару дней назад.

Есть ли у кого-нибудь хоть малейшее представление, с чего вообще начать поиск решения?

Ответы

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

У меня такая же проблема. String.matchAllне работает на Android. matchВместо этого вы должны использовать matchAll.

Пример:

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

Вы получите регулярное выражение соответствия массива