【发布时间】:2014-10-07 04:59:28
【问题描述】:
我遇到了计数 unicode 字符的问题。我需要计算组合的 unicode 字符总数。
以这个字符为例:
द्ध
如果你在这个字符串上使用 .length 属性,它会给你 3。这在技术上是正确的,因为它是一个组合
द、् 和 ध
但是,将द्ध放在文本区域中,然后使用箭头键您会意识到它被视为一个字符。只有当你使用退格时,你才会意识到有 3 个字符。
编辑:对于您的测试用例,请考虑它可能是一个词。可能是这样的,
द्धद्द
.length 应该给出 2,但给出 6
当您想要获取或设置输入元素中的当前插入符号位置时,这是一个问题。
【问题讨论】:
-
那么,您想要逻辑字符数而不是 UTF-16 代码单元?
-
有趣的问题。更重要的是,在 Python 中,
len("द्ध")是 9,len("द")是 3。 -
@Deduplicator 是的,类似的东西。我正在做一些事情,需要在 textarea 上获得插入符号的位置。但由于没有正确读取长度,我很难准确地获得位置。
-
在chrome中,如果我尝试将carret放在这个字符之后,我实际上需要用长度3来计算它:jsfiddle.net/c68rwwut。所以我想这个问题实际上不是问题。
-
问题应该重新打开,或者至少链接到其他地方。这是关于计算字素,而“重复”是关于字节长度,完全不相关。
标签: javascript unicode