2017-03-21 153 views
1

我有一個正則表達式,它可以找到字符串中的所有4字節的Unicode字符。我想讓以下所有流行的瀏覽器兼容。正則表達式匹配4個字節的Unicode字符

下面的代碼在Chrome和Firefox罰款,但Safari瀏覽器拋出「無效的正則表達式:範圍出的順序字符類」

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

所以我的問題是我應該如何改變正則表達式能夠匹配字符串中的所有4字節unicode字符,而不使用regex的unicode特性。

+0

很高興我的回答對你起作用。我今天沒有投票,明天我會提出這個問題。 –

回答

3

Safari不支持ES6正則表達式語法。所有你能做的就是transpile正則表達式與正則表達式ES5符合語法:

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

+0

謝謝,它像一個字符一樣工作! –