Phương thức normalize()
trả về chuỗi với các ký tự Unicode đã được bình thường hóa (nếu giá trị truyền vào không phải chuỗi, nó sẽ được chuyển thành chuỗi trước).
The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.
Cú pháp
str.normalize([form])
Tham số
form
- Là một trong các giá trị
"NFC"
,"NFD"
,"NFKC"
, hoặc"NFKD"
, để chỉ định định dạng Unicode của chuỗi ký tự. Nếu bỏ qua hoặc mang giá trịundefined
,"NFC"
sẽ được sử dụng.NFC
— Normalization Form Canonical Composition. (Unicode Dựng Sẵn)NFD
— Normalization Form Canonical Decomposition. (Unicode Tổ Hợp)NFKC
— Normalization Form Compatibility Composition. (Unicode Dựng Sẵn Tương Thích)NFKD
— Normalization Form Compatibility Decomposition. (Unicode Tổ Hợp Tương Thích)
Giá trị trả về
Một chuỗi mới với các ký tự Unicode đã được bình thường hóa.
Lỗi có thể gây ra
RangeError
- Phương thức sẽ gây ra lỗi
RangeError
nếu như giá trị tham sốform
không phải là một trong các giá trị liệt kê ở trên.
Mô tả
Phương thức normalize()
sẽ trả về một chuỗi mới với các ký tự Unicode đã được bình thường hóa theo một trong các định dạng Unicode Normalization Form. Nó không làm thay đổi chuỗi ban đầu.
Đối với tiếng Việt, việc bình thường hóa giữa hai định dạng Canonical hoặc Compatibility (cùng Tổ Hợp hoặc Dựng Sẵn) là như nhau.
Ví dụ
Sử dụng normalize()
// Chuỗi ban đầu
// U+1E9B: LATIN SMALL LETTER LONG S WITH DOT ABOVE
// U+0323: COMBINING DOT BELOW
var str = '\u1E9B\u0323';
// Canonically-composed form (NFC)
// U+1E9B: LATIN SMALL LETTER LONG S WITH DOT ABOVE
// U+0323: COMBINING DOT BELOW
str.normalize('NFC'); // '\u1E9B\u0323'
str.normalize(); // như trên
// Canonically-decomposed form (NFD)
// U+017F: LATIN SMALL LETTER LONG S
// U+0323: COMBINING DOT BELOW
// U+0307: COMBINING DOT ABOVE
str.normalize('NFD'); // '\u017F\u0323\u0307'
// Compatibly-composed (NFKC)
// U+1E69: LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE
str.normalize('NFKC'); // '\u1E69'
// Compatibly-decomposed (NFKD)
// U+0073: LATIN SMALL LETTER S
// U+0323: COMBINING DOT BELOW
// U+0307: COMBINING DOT ABOVE
str.normalize('NFKD'); // '\u0073\u0323\u0307'
// So sánh chuỗi tiếng Việt:
// Unicode Dựng Sẵn
var tvds = 'Tiếng Việt';
// Unicode Tổ Hợp
var tvth = 'Tiếng Việt';
console.log(tvds.length); // 10
console.log(tvth.length); // 14
console.log(tvds == tvth); // false
console.log(tvds.normalize('NFC') == tvth.normalize('NFC')); // true
Đặc tả
Đặc tả | Trạng thái | Ghi chú |
---|---|---|
ECMAScript 2015 (6th Edition, ECMA-262) The definition of 'String.prototype.normalize' in that specification. |
Standard | Định nghĩa lần đầu. |
ECMAScript (ECMA-262) The definition of 'String.prototype.normalize' in that specification. |
Living Standard |
Trình duyệt hỗ trợ
BCD tables only load in the browser
The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.