我有一个正则表达式,可以在字符串中找到所有4字节的unicode字符。我想使以下内容与所有流行的浏览器兼容。
以下代码在Chrome和Firefox中运行正常,但Safari会抛出"无效的正则表达式:字符类中的范围无序"
var match = 'aaaaaa'.match(/[\u{10000}-\u{10FFFF}]/gu);
所以我的问题是如何更改正则表达式以便能够匹配字符串中的所有4字节unicode字符,而不使用正则表达式的unicode功能。
答案 0 :(得分:4)
Safari不支持ES6正则表达式语法。您所能做的只是transpile正则表达式符合ES5正则表达式语法:
console.log('aaaaaa'.match(/(?:[\uD800-\uDBFF][\uDC00-\uDFFF])/g));