Javascrip regexp只匹配疲倦的心脏表情符号字符

问题描述 投票:0回答:1
var a="❤️";
console.log(a.charCodeAt(0).toString(16));
console.log(/^[\u2000-\u3300]$/.test(a));      // false
console.log(/^[\u2000-\u3300]/.test(a));     // true

无法理解为什么两个正则表达式测试的行为方式不同,并且仅在此字符执行情况下才发生。

javascript regex browser
1个回答
1
投票

❤️两个代码点组成,因此仅匹配一个字符后的$锚点将失败:

var a="❤️";
console.log(a.charCodeAt(0));
console.log(a.charCodeAt(1));

关于将通过的模式的示例:

var a="❤️";
console.log(a.charCodeAt(0).toString(16));
console.log(a.charCodeAt(1).toString(16));
console.log(/^[\u2000-\u3300][\u2000-\uff00]$/.test(a));
© www.soinside.com 2019 - 2024. All rights reserved.