ขณะนี้ออบเจ็กต์ Intl.Segmenter เป็นส่วนหนึ่งของ Baseline แล้ว

ตอนนี้คุณใช้ Intl.Segmenter สำหรับการแบ่งกลุ่มข้อความที่ละเอียดอ่อนตามภาษา เพื่อแยกสตริงเป็นคำ ประโยค หรือกราฟเมียม

การรองรับเบราว์เซอร์

  • Chrome: 87.
  • ขอบ: 87
  • Firefox: 125
  • Safari: 14.1

แหล่งที่มา

มีหลายภาษาที่ไม่ใช่ภาษาละติน เช่น จีนและญี่ปุ่น อย่าเว้นวรรคเพื่อแยกคำ ดังนั้น การใช้ JavaScript split() ในช่องว่างเพื่อแยกข้อความเป็นคำ จะแสดงผลลัพธ์ที่ไม่ถูกต้อง

เมื่อสร้างออบเจ็กต์ Intl.Segmenter ใหม่ด้วยเมธอด เครื่องมือสร้าง Intl.segmenter() ใน locale และตัวเลือกซึ่งรวมถึง granularity ซึ่ง มีค่าเป็น "grapheme", "word" หรือ "sentence" ดังต่อไปนี้ ตัวอย่างเช่น สร้างออบเจ็กต์ Intl.Segmenter ใหม่สำหรับภาษาญี่ปุ่นโดยแยกคำ

const segmenter = new Intl.Segmenter('ja-JP', { granularity: 'word' });

การเรียกใช้ segment() ในออบเจ็กต์ Intl.Segmenter ที่มีสตริงข้อความ จะแสดงค่าที่ซ้ำกันได้:

const segments = segmenter.segment(str);
console.table(Array.from(segments));

อ่านการใช้ Intl.Segmenter API ในบล็อก Polypane เพื่อดูบทแนะนำที่ยอดเยี่ยมเกี่ยวกับวิธีใช้ฟีเจอร์นี้

การแบ่งกลุ่มข้อความระหว่างประเทศด้วย Intl.Segmenter ใน JavaScript มีตัวอย่างเพิ่มเติม รวมถึงวิธีใช้ Intl.Segmenter กับอีโมจิ