【问题标题】:How to count text length with special characters?如何计算带有特殊字符的文本长度?
【发布时间】:2017-04-05 09:01:22
【问题描述】:

例如const words = 'a̋b̋';words.length 就是4。但我们期待 2 的“真实”长度。

或者,有没有什么安全的方法可以遍历上面words中的所有字符?

【问题讨论】:

标签: javascript string-length


【解决方案1】:

JavaScript 中没有任何内置功能可以帮助您将这些组合标记与其他字符区分开来。当然,您可以使用来自http://unicode.org 的参考信息构建一些东西。 :-)

...但至少有一个人似乎已经为您这样做了:https://github.com/orling/grapheme-splitter

进入 grapheme-splitter.js 库。它可用于将 JavaScript 字符串正确地拆分为人类用户所称的单独字母(或 Unicode 术语中的“扩展字形簇”),无论它们的内部表示是什么。它是 Unicode UAX-29 标准的实现。

const words = 'a̋b̋';
const splitter = new GraphemeSplitter();
const graphemes = splitter.splitGraphemes(words);
console.log(graphemes);

这会在graphemes"a̋""b̋" 中产生两个条目。 (不能做实时示例,不允许到 github 原始页面的实时链接。)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-06
    • 1970-01-01
    • 1970-01-01
    • 2012-05-14
    • 2021-12-26
    • 1970-01-01
    • 1970-01-01
    • 2015-05-15
    相关资源
    最近更新 更多