Baseline Widely available
normalize()
ë©ìëë 주ì´ì§ 문ìì´ì ì ëì½ë ì ê·í ë°©ì(Unicode Normalization Form)ì ë°ë¼ ì ê·íë ííë¡ ë°íí©ëë¤. ë§ì½ 주ì´ì§ ê°ì´ 문ìì´ì´ ìë ê²½ì°ìë ì°ì 문ìì´ë¡ ë³í í ì ê·íí©ëë¤.
const name1 = "\u0041\u006d\u00e9\u006c\u0069\u0065";
const name2 = "\u0041\u006d\u0065\u0301\u006c\u0069\u0065";
console.log(`${name1}, ${name2}`);
// Expected output: "Amélie, Amélie"
console.log(name1 === name2);
// Expected output: false
console.log(name1.length === name2.length);
// Expected output: false
const name1NFC = name1.normalize("NFC");
const name2NFC = name2.normalize("NFC");
console.log(`${name1NFC}, ${name2NFC}`);
// Expected output: "Amélie, Amélie"
console.log(name1NFC === name2NFC);
// Expected output: true
console.log(name1NFC.length === name2NFC.length);
// Expected output: true
구문 매ê°ë³ì
form
ì ëì½ë ì ê·í ë°©ìì ì§ì í©ëë¤. "NFC"
, "NFD"
, "NFKC"
, "NFKD"
ì¤ íëì´ë©°, ìëµëê±°ë undefined
ì¼ ê²½ì° "NFC"
ê° ì¬ì©ë©ëë¤.* NFC
â ì ê·í ì ì¤ ê²°í©(Normalization Form Canonical Composition).
NFD
â ì ê·í ì ì¤ ë¶í´(Normalization Form Canonical Decomposition).NFKC
â ì ê·í í¸íì± ê²°í©(Normalization Form Compatibility Composition).NFKD
â ì ê·í í¸íì± ë¶í´(Normalization Form Compatibility Decomposition).주ì´ì§ 문ìì´ì ì ëì½ë ì ê·í ë°©ìì ë°ë¼ ì ê·íë 문ìì´ë¡ ë°íí©ëë¤.
ìì¸RangeError
form
ì´ ììì ëª
ìë ê° ì¤ íëê° ìë ê²½ì° RangeError
ìë¬ê° ë°ìí©ëë¤.
normalize()
ë©ìëë 문ìì´ì ì ëì½ë ì ê·í ë°©ìì ë°ë¼ ì ê·íë ííë¡ ë°íí©ëë¤. 문ìì´ì ê° ìì²´ìë ìí¥ì ì£¼ì§ ììµëë¤.
normalize()
ì¬ì©í기
// ì본 문ìì´
// U+1E9B: LATIN SMALL LETTER LONG S WITH DOT ABOVE
// U+0323: COMBINING DOT BELOW
var str = "\u1E9B\u0323";
// ì ê·í ì ì¤ ê²°í© (NFC)
// U+1E9B: LATIN SMALL LETTER LONG S WITH DOT ABOVE
// U+0323: COMBINING DOT BELOW
str.normalize("NFC"); // '\u1E9B\u0323'
str.normalize(); // ìì ê°ì ê²°ê³¼
// ì ê·í ì ì¤ ë¶í´ (NFD)
// U+017F: LATIN SMALL LETTER LONG S
// U+0323: COMBINING DOT BELOW
// U+0307: COMBINING DOT ABOVE
str.normalize("NFD"); // '\u017F\u0323\u0307'
// ì ê·í í¸íì± ê²°í© (NFKC)
// U+1E69: LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE
str.normalize("NFKC"); // '\u1E69'
// ì ê·í í¸íì± ë¶í´ (NFKD)
// U+0073: LATIN SMALL LETTER S
// U+0323: COMBINING DOT BELOW
// U+0307: COMBINING DOT ABOVE
str.normalize("NFKD"); // '\u0073\u0323\u0307'
íê¸ì normalize()
ì¬ì©í기
// ê²°í©ë íê¸ ë¬¸ìì´
// U+D55C: í(HANGUL SYLLABLE HAN)
// U+AE00: ê¸(HANGUL SYLLABLE GEUL)
var first = "\uD55C\uAE00";
// ì ê·í ì ì¤ ë¶í´ (NFD)
// ì ì¤ ë¶í´ ê²°ê³¼ ì´ì±, ì¤ì±, ì¢
ì±ì ììë¶ë¦¬ê° ì¼ì´ë©ëë¤.
// ì¼ë¶ ë¸ë¼ì°ì ììë ê²°ê³¼ê° 'áá
¡á«áá
³á¯'ì´ ììë¶ë¦¬ë ìíë¡ ë³´ì¬ì§ ì ììµëë¤.
// U+1112: á(HANGUL CHOSEONG HIEUH)
// U+1161: á
¡(HANGUL JUNGSEONG A)
// U+11AB: á«(HANGUL JONGSEONG NIEUN)
// U+1100: á(HANGUL CHOSEONG KIYEOK)
// U+1173: á
³(HANGUL JUNGSEONG EU)
// U+11AF: á¯(HANGUL JONGSEONG RIEUL)
var second = first.normalize("NFD"); // '\u1112\u1161\u11AB\u1100\u1173\u11AF'
// ì ê·í ì ì¤ ê²°í© (NFC)
// ì ì¤ ê²°í© ê²°ê³¼ ììë¶ë¦¬ ëìë íê¸ì´ ê²°í©ë©ëë¤.
// U+D55C: í(HANGUL SYLLABLE HAN)
// U+AE00: ê¸(HANGUL SYLLABLE GEUL)
var third = second.normalize("NFC"); // '\uD55C\uAE00'
console.log(second === third); // ê°ì ê¸ìì²ë¼ ë³´ì´ì§ë§ false를 ì¶ë ¥í©ëë¤.
ëª
ì¸ ë¸ë¼ì°ì í¸íì± ê°ì´ 보기
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4