Intl.Segmenter

Baseline 2024
Newly available

Since April 2024, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.

Đối tượng Intl.Segmenter cho phép phân đoạn văn bản theo locale, giúp bạn lấy các mục có ý nghĩa (grapheme, từ hoặc câu) từ một chuỗi.

Try it

const segmenterFr = new Intl.Segmenter("fr", { granularity: "word" });
const string = "Que ma joie demeure";

const iterator = segmenterFr.segment(string)[Symbol.iterator]();

console.log(iterator.next().value.segment);
// Expected output: 'Que'

console.log(iterator.next().value.segment);
// Expected output: ' '

Hàm khởi tạo

Intl.Segmenter()

Tạo một đối tượng Intl.Segmenter mới.

Phương thức tĩnh

Intl.Segmenter.supportedLocalesOf()

Trả về một mảng chứa các locale được cung cấp được hỗ trợ mà không phải dùng locale mặc định của runtime.

Thuộc tính instance

Các thuộc tính này được định nghĩa trên Intl.Segmenter.prototype và dùng chung cho tất cả các instance Intl.Segmenter.

Intl.Segmenter.prototype.constructor

Hàm khởi tạo đã tạo ra đối tượng instance. Với các instance Intl.Segmenter, giá trị khởi tạo là hàm khởi tạo Intl.Segmenter.

Intl.Segmenter.prototype[Symbol.toStringTag]

Giá trị khởi tạo của thuộc tính [Symbol.toStringTag] là chuỗi "Intl.Segmenter". Thuộc tính này được dùng trong Object.prototype.toString().

Phương thức instance

Intl.Segmenter.prototype.resolvedOptions()

Trả về một đối tượng mới với các thuộc tính phản ánh locale và tùy chọn độ chi tiết được tính toán trong quá trình khởi tạo đối tượng Intl.Segmenter này.

Intl.Segmenter.prototype.segment()

Trả về một instance Segments có thể lặp mới đại diện cho các phân đoạn của một chuỗi theo locale và độ chi tiết của instance Intl.Segmenter này.

Ví dụ

Sử dụng cơ bản và sự khác biệt so với String.prototype.split()

Nếu chúng ta dùng String.prototype.split(" ") để phân đoạn văn bản thành từ, chúng ta sẽ không nhận được kết quả đúng nếu locale của văn bản không sử dụng khoảng trắng giữa các từ (như trường hợp của tiếng Nhật, tiếng Trung, tiếng Thái, tiếng Lào, tiếng Khmer, tiếng Myanmar, v.v.).

js
const str = "吾輩は猫である。名前はたぬき。";
console.table(str.split(" "));
// ['吾輩は猫である。名前はたぬき。']
// Hai câu không được phân đoạn đúng.
js
const str = "吾輩は猫である。名前はたぬき。";
const segmenterJa = new Intl.Segmenter("ja-JP", { granularity: "word" });

const segments = segmenterJa.segment(str);
console.table(Array.from(segments));
// [{segment: '吾輩', index: 0, input: '吾輩は猫である。名前はたぬき。', isWordLike: true},
// v.v.
// ]

Đặc tả kỹ thuật

Specification
ECMAScript® 2026 Internationalization API Specification
# segmenter-objects

Tương thích trình duyệt

Xem thêm