var a="❤️";
console.log(a.charCodeAt(0).toString(16));
console.log(/^[\u2000-\u3300]$/.test(a)); // false
console.log(/^[\u2000-\u3300]/.test(a)); // true
无法理解为什么两个正则表达式测试的行为方式不同,并且仅在此字符执行情况下才发生。
❤️
由两个代码点组成,因此仅匹配一个字符后的$
锚点将失败:
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));