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'

规范

SpecificationStatusComment
ECMAScript 2015 (6th Edition, ECMA-262)The definition of 'String.prototype.normalize' in that specification.StandardInitial definition.
ECMAScript Latest Draft (ECMA-262)The definition of 'String.prototype.normalize' in that specification.Draft

浏览器兼容性

FeatureChromeFirefoxEdgeInternet ExplorerOperaSafari
Basic Support3431(Yes)(No)(Yes)10

FeatureAndroidChrome for AndroidEdge mobileFirefox for AndroidIE mobileOpera AndroidiOS Safari
Basic Support(No)34(Yes)(No)(No)(Yes)10