diff options
Diffstat (limited to 'files/vi/web/javascript/reference/global_objects/string/normalize')
-rw-r--r-- | files/vi/web/javascript/reference/global_objects/string/normalize/index.html | 146 |
1 files changed, 146 insertions, 0 deletions
diff --git a/files/vi/web/javascript/reference/global_objects/string/normalize/index.html b/files/vi/web/javascript/reference/global_objects/string/normalize/index.html new file mode 100644 index 0000000000..faf26687eb --- /dev/null +++ b/files/vi/web/javascript/reference/global_objects/string/normalize/index.html @@ -0,0 +1,146 @@ +--- +title: String.prototype.normalize() +slug: Web/JavaScript/Reference/Global_Objects/String/normalize +tags: + - Chuỗi + - ECMAScript 2015 + - JavaScript + - Phương Thức + - Prototype + - String + - Tham khảo + - Unicode +translation_of: Web/JavaScript/Reference/Global_Objects/String/normalize +--- +<div>{{JSRef}}</div> + +<p>Phương thức <strong><code>normalize()</code></strong> 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).</p> + +<div>{{EmbedInteractiveExample("pages/js/string-normalize.html")}}</div> + + + +<h2 id="Cú_pháp">Cú pháp</h2> + +<pre class="syntaxbox"><code><var>str</var>.normalize([<var>form</var>])</code></pre> + +<h3 id="Tham_số">Tham số</h3> + +<dl> + <dt><code>form</code></dt> + <dd>Là một trong các giá trị <code>"NFC"</code>, <code>"NFD"</code>, <code>"NFKC"</code>, hoặc <code>"NFKD"</code>, để chỉ định định dạng Unicode của chuỗi ký tự. Nếu bỏ qua hoặc mang giá trị {{jsxref("undefined")}}, <code>"NFC"</code> sẽ được sử dụng. + <ul> + <li><code>NFC</code> — Normalization Form Canonical Composition. (Unicode Dựng Sẵn)</li> + <li><code>NFD</code> — Normalization Form Canonical Decomposition. (Unicode Tổ Hợp)</li> + <li><code>NFKC</code> — Normalization Form Compatibility Composition. (Unicode Dựng Sẵn Tương Thích)</li> + <li><code>NFKD</code> — Normalization Form Compatibility Decomposition. (Unicode Tổ Hợp Tương Thích)</li> + </ul> + </dd> +</dl> + +<h3 id="Giá_trị_trả_về">Giá trị trả về</h3> + +<p>Một chuỗi mới với các ký tự Unicode đã được bình thường hóa.</p> + +<h3 id="Lỗi_có_thể_gây_ra">Lỗi có thể gây ra</h3> + +<dl> + <dt>{{jsxref("RangeError")}}</dt> + <dd>Phương thức sẽ gây ra lỗi {{jsxref("RangeError")}} nếu như giá trị tham số <code>form</code> không phải là một trong các giá trị liệt kê ở trên.</dd> +</dl> + +<h2 id="Mô_tả">Mô tả</h2> + +<p>Phương thức <code>normalize()</code> 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.</p> + +<div class="blockIndicator note"> +<p>Đố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.</p> +</div> + +<h2 id="Ví_dụ">Ví dụ</h2> + +<h3 id="Sử_dụng_normalize()">Sử dụng <code>normalize()</code></h3> + +<pre class="brush: js">// 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 +</pre> + +<h2 id="Đặc_tả">Đặc tả</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Đặc tả</th> + <th scope="col">Trạng thái</th> + <th scope="col">Ghi chú</th> + </tr> + <tr> + <td>{{SpecName('ES2015', '#sec-string.prototype.normalize', 'String.prototype.normalize')}}</td> + <td>{{Spec2('ES2015')}}</td> + <td>Định nghĩa lần đầu.</td> + </tr> + <tr> + <td>{{SpecName('ESDraft', '#sec-string.prototype.normalize', 'String.prototype.normalize')}}</td> + <td>{{Spec2('ESDraft')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Trình_duyệt_hỗ_trợ">Trình duyệt hỗ trợ</h2> + +<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("javascript.builtins.String.normalize")}}</p> + +<h2 id="Xem_thêm">Xem thêm</h2> + +<ul> + <li><a href="http://www.unicode.org/reports/tr15/">Unicode Standard Annex #15, Unicode Normalization Forms</a></li> + <li><a href="http://en.wikipedia.org/wiki/Unicode_equivalence">Unicode equivalence</a></li> +</ul> |