x js unicode string Segmenter

By Xah Lee. Date: .

x unicode string Segmenter

// 2026-01-13
// from
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Segmenter

const xx = "吾輩は猫である。名前はたぬき。";
const segmenterJa = new Intl.Segmenter("ja-JP", { granularity: "word" });
const xresult = segmenterJa.segment(xx);
console.log(Array.from(xresult));
/*
[
  {
    segment: "吾輩",
    index: 0,
    input: "吾輩は猫である。名前はたぬき。",
    isWordLike: true
  },
  {
    segment: "は",
    index: 2,
    input: "吾輩は猫である。名前はたぬき。",
    isWordLike: true
  },
  {
    segment: "猫",
    index: 3,
    input: "吾輩は猫である。名前はたぬき。",
    isWordLike: true
  },
  {
    segment: "で",
    index: 4,
    input: "吾輩は猫である。名前はたぬき。",
    isWordLike: true
  },
  {
    segment: "ある",
    index: 5,
    input: "吾輩は猫である。名前はたぬき。",
    isWordLike: true
  },
  {
    segment: "。",
    index: 7,
    input: "吾輩は猫である。名前はたぬき。",
    isWordLike: false
  },
  {
    segment: "名前",
    index: 8,
    input: "吾輩は猫である。名前はたぬき。",
    isWordLike: true
  },
  {
    segment: "は",
    index: 10,
    input: "吾輩は猫である。名前はたぬき。",
    isWordLike: true
  },
  {
    segment: "たぬき",
    index: 11,
    input: "吾輩は猫である。名前はたぬき。",
    isWordLike: true
  },
  {
    segment: "。",
    index: 14,
    input: "吾輩は猫である。名前はたぬき。",
    isWordLike: false
  }
]
*/

console.table(Array.from(xresult));

/*
┌───────┬──────────┬───────┬──────────────────────────────────┬────────────┐
│ (idx) │ segment  │ index │ input                            │ isWordLike │
├───────┼──────────┼───────┼──────────────────────────────────┼────────────┤
│     0 │ "吾輩"   │     0 │ "吾輩は猫である。名前はたぬき。" │ true       │
│     1 │ "は"     │     2 │ "吾輩は猫である。名前はたぬき。" │ true       │
│     2 │ "猫"     │     3 │ "吾輩は猫である。名前はたぬき。" │ true       │
│     3 │ "で"     │     4 │ "吾輩は猫である。名前はたぬき。" │ true       │
│     4 │ "ある"   │     5 │ "吾輩は猫である。名前はたぬき。" │ true       │
│     5 │ "。"     │     7 │ "吾輩は猫である。名前はたぬき。" │ false      │
│     6 │ "名前"   │     8 │ "吾輩は猫である。名前はたぬき。" │ true       │
│     7 │ "は"     │    10 │ "吾輩は猫である。名前はたぬき。" │ true       │
│     8 │ "たぬき" │    11 │ "吾輩は猫である。名前はたぬき。" │ true       │
│     9 │ "。"     │    14 │ "吾輩は猫である。名前はたぬき。" │ false      │
└───────┴──────────┴───────┴──────────────────────────────────┴────────────┘
*/