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.matchAllAndroidでは機能しません。match代わりにを使用する必要がありますmatchAll

例:

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

配列一致の正規表現を取得します