2017-03-21 15 views
1

文字列内の4バイトのユニコード文字をすべて見つける正規表現があります。私はすべての一般的なブラウザと互換性があるようにしたいと思います。正規表現は4バイトのユニコード文字と一致します

次のコードは、ChromeとFirefoxで正常に動作しますが、Safariがスローされます「無効な正規表現を:文字クラスでの注文のうち範囲」

var match = 'aaaaaa'.match(/[\u{10000}-\u{10FFFF}]/gu); 

だから私の質問は、私は正規表現ができるように変更する方法です文字列中のすべての4バイトのユニコード文字をマッチさせ、正規表現のユニコード機能を使用しないでください。

+0

グラッド私の答えはあなたのために働きました。私は今日票がなくなりました、明日の質問をアップアップします。 –

答えて

3

SafariはES6正規表現の構文をサポートしていません。あなたがすることができるすべては、ES5の正規表現の構文に準拠するtranspile正規表現です:

console.log('aaaaaa'.match(/(?:[\uD800-\uDBFF][\uDC00-\uDFFF])/g));

+0

ありがとう、それはチャーのように動作します! –

関連する問題