This example regular expression(^[\u0021-\u003F\u0041-\uFFEF]+@[\u0021-\u003F\u0041-\uFFEF]+\.[\u0021-\u003F\u0041-\uFFEF]+$
)可以按Unicode character ranges过滤字符,我可以将范围从\u0000
转到\uFFFF
,但Unicode支持字符以外的字符0xFFFF
。我可以在JavaScript的正则表达式中使用上面的范围吗?
答案 0 :(得分:1)
为了向后兼容ECMAScript 5和旧环境,不幸的解决方案是使用代理对:
>> '\uD83D\uDCA9' '' // U+1F4A9 PILE OF POO
在这种情况下,每个转义代表代理一半的代码点。两个代理半部形成一个星体符号。
答案 1 :(得分:1)
ECMAScript6引入了RegExp
u
标志,以支持更高值的Unicode转义:
(/\u{1F4A9}/u).test(""); // true
不幸的是,截至目前只有MS Edge支持此功能。