React Native: <string> .matchAll không phải là một hàm

Nov 20 2020

Tôi gặp một lỗi lạ khi chạy ứng dụng React Native của mình:

Một số mẫu mã:

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

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

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

Đầu ra nhật ký:

url: <as expected>
typeof url: string

Thông báo lỗi:

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

Mọi thứ hoạt động tốt trên iOS, lỗi chỉ xảy ra trên Android.

Môi trường khá cập nhật, đã cập nhật tất cả npmcác gói một vài ngày trước.

Có ai có ý tưởng nhỏ nhất về nơi bắt đầu tìm kiếm giải pháp không?

Trả lời

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

Tôi có cùng một vấn đề. String.matchAllkhông hoạt động cho Android. Bạn nên sử dụng matchthay thế matchAll.

Thí dụ:

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

Bạn sẽ nhận được một trận đấu mảng regex