string.normalize
string.normalize
normalize()
方法会按照指定的一种 Unicode 正规形式将当前字符串正规化.
语法
str.normalize([form])
参数
form
四种 Unicode 正规形式 "NFC", "NFD", "NFKC", 以及 "NFKD" 其中的一个, 默认值为 "NFC".
NFC
— Normalization Form Canonical Composition.
NFD
— Normalization Form Canonical Decomposition.
NFKC
— Normalization Form Compatibility Composition.
NFKD
— Normalization Form Compatibility Decomposition.
返回值
包含给定字符串的Unicode规范化表单的字符串。
异常
RangeError
如果给 form
传入了非法的参数值, 则会抛出 RangeError
异常.
描述
该normalize()
方法返回字符串的指定Unicode规范化表单。它不会影响字符串本身的值。
示例
使用 normalize()
// Initial string
// 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( // same as above
// 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'
规范
Specification | Status | Comment |
---|---|---|
ECMAScript 2015 (6th Edition, ECMA-262)The definition of 'String.prototype.normalize' in that specification. | Standard | Initial definition. |
ECMAScript Latest Draft (ECMA-262)The definition of 'String.prototype.normalize' in that specification. | Draft | |
浏览器兼容性
Feature | Chrome | Firefox | Edge | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
Basic Support | 34 | 31 | (Yes) | (No) | (Yes) | 10 |
Feature | Android | Chrome for Android | Edge mobile | Firefox for Android | IE mobile | Opera Android | iOS Safari |
---|---|---|---|---|---|---|---|
Basic Support | (No) | 34 | (Yes) | (No) | (No) | (Yes) | 10 |