在Javascript中计算unicode字符

时间:2014-08-13 17:47:24

标签: javascript unicode

我遇到了计算unicode字符的问题。我需要计算总的组合unicode字符。

以此字符为例:

द्ध

如果你在这个字符串上使用.length属性,它会给你3.这在技术上是正确的,因为它是

的组合

但是,将द्ध放在文本区域中,然后通过使用箭头键将其视为一个字符。只有你使用退格键才能意识到有3个字符。

编辑:同样对于您的测试用例,请考虑它可能是一个单词。它可能是这样的,

द्धद्द

这应该给{2} .length,但给出6

当您想要获取或设置输入元素中的当前插入位置时,这是一个问题。

1 个答案:

答案 0 :(得分:3)

您的示例“द्ध”是一个由三个Unicode字符组成的字符串,length属性正确表明了这一点。

你显然想要计算的是其他意义上的“人物”,比如“一个语言的说话者直觉上看作一个角色”。这是一个模糊和可变的概念。 Unicode标准附件UAX#29 Unicode Text Segmentation试图分析这个概念,称之为“字形集群”,并描述了一些使用它的算法。

不幸的是,JavaScript没有用于识别字符是否是例如的内置工具。结合标记,这应该被视为一个集群的一部分。但是,如果您可以限制自己仅处理一个写入系统,则可以手动编写操作代码,并根据代码编号引用可能的Unicode字符。

此外,如果目的是使计数与某些输入编辑器的工作方式相匹配(例如箭头如何更多地键入字符),则需要知道该编辑器的逻辑。它可以在某种意义上实现Unicode字形集群,或者其他东西。

相关问题