对于基本多语言平面中的字符,我们可以使用'\uxxxx'进行转义。例如,您可以使用/[\u4e00-\u9fff]/来匹配常用汉字(0x4e00-0x9fff 是中日韩统一表意文字的范围)。
但对于基本多语言平面之外的字符,其代码大于0xffff。所以你不能使用格式'\uxxxx'来转义它,因为'\u20000'表示字符'\u2000'和字符'0',而不是代码为0x20000的字符。
如何将字符转义出基本多语言平面?直接使用这些字符不是一个好主意,因为它们无法在大多数字体中显示。
最佳答案
Javascript 无法直接识别 BMP 之外的字符——它们在内部表示为 UTF-16 代理项对。例如,您提到的字符 U+20000(当前分配给“CJK Unified Ideographs Ext. B”)表示为代理项对 U+D840 U+DC00。作为 Javascript 字符串,这只是 "\u2840\uDC00"
。 (请注意,该字符串的 s.length
为 2,即使它显示为单个字符。)
关于javascript - 如何将角色转出基本多语言平面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13204412/