HTML: Markup language
CSS: Styling language
JavaScript: Scripting language
Web APIs: Programming interfaces
All web technology
Learn web development
Discover our tools
Get to know MDN better
This page was translated from English by the community. Learn more and join the MDN Web Docs community.
View in English Always switch to English
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2016년 9월.
normalize() 메서드는 주어진 문자열을 유니코드 정규화 방식(Unicode Normalization Form)에 따라 정규화된 형태로 반환합니다. 만약 주어진 값이 문자열이 아닐 경우에는 우선 문자열로 변환 후 정규화합니다.
normalize()
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
str.normalize([form]);
form
유니코드 정규화 방식을 지정합니다. "NFC", "NFD", "NFKC", "NFKD" 중 하나이며, 생략되거나 undefined 일 경우 "NFC"가 사용됩니다.* NFC — 정규형 정준 결합(Normalization Form Canonical Composition).
"NFC"
"NFD"
"NFKC"
"NFKD"
undefined
NFC
NFD
NFKC
NFKD
주어진 문자열을 유니코드 정규화 방식에 따라 정규화된 문자열로 반환합니다.
RangeError
form이 위에서 명시된 값 중 하나가 아닐 경우 RangeError 에러가 발생합니다.
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'
// 결합된 한글 문자열 // 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를 출력합니다.
Enable JavaScript to view this browser compatibility table.