正则表达式匹配4字节Unicode字符。

7

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

以下代码在Chrome和Firefox中运行良好,但Safari会报错“Invalid regular expression: range out of order in character class”

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

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

1个回答

8

Safari不支持ES6正则表达式语法。你所能做的就是转译正则表达式以符合ES5正则表达式语法:

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接