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.Segmentermớ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ạoIntl.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 trongObject.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.Segmenternày. Intl.Segmenter.prototype.segment()-
Trả về một instance
Segmentscó 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 instanceIntl.Segmenternà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.).
const str = "吾輩は猫である。名前はたぬき。";
console.table(str.split(" "));
// ['吾輩は猫である。名前はたぬき。']
// Hai câu không được phân đoạn đúng.
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> |