Unicode Segmentation in JavaScript

https://h3manth.com/posts/unicode-segmentation-in-javascript/

Unicode 定义了一个字符分割算法来查找字符之间的边界。Unicode 还定义了一种算法,用于查找 CLDR 根据地区设置调整的词和句子之间的边界。这些边界可能是有用的,例如,在实现一个文本编辑器,其中有跳跃或突出单词和句子的命令,Intl.Segmenter API 可以帮助我们轻松地分割这些代码点。

示例代码:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
let segmenter = new Intl.Segmenter("kn-IN", {granularity: "word"});
let input = "ಆವು ಈವಿನ ನಾವು ನೀವಿಗೆ ಆನು ತಾನದ ತನನನಾ";
let segments = segmenter.segment(input);
for (let {segment, index, isWordLike} of segments) {
  console.log("segment at code units [%d, %d): «%s»%s",
    index, index + segment.length,
    segment,
    isWordLike ? " (word-like)" : ""
  );
}

更多内容阅读 GitHub:tc39/proposal-intl-segmenter

Layout of comment panels