正则表达式匹配4个字节的unicode字符

时间:2017-03-21 09:43:40

标签: javascript regex

我有一个正则表达式,可以在字符串中找到所有4字节的unicode字符。我想使以下内容与所有流行的浏览器兼容。

以下代码在Chrome和Firefox中运行正常,但Safari会抛出"无效的正则表达式:字符类中的范围无序"

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

所以我的问题是如何更改正则表达式以便能够匹配字符串中的所有4字节unicode字符,而不使用正则表达式的unicode功能。

1 个答案:

答案 0 :(得分:4)

Safari不支持ES6正则表达式语法。您所能做的只是transpile正则表达式符合ES5正则表达式语法:

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