반응형
앞에 오는 단어에 따라 은, 는, 이, 가를 붙이도록 하고 싶다
한글은 초성, 중성, 종성으로 이루어져 있다
초성: 19자 (ㄱ, ㄲ, ㄴ, ㄷ...)
중성: 21자 (ㅏ, ㅐ, ㅑ, ㅒ...)
종성: 28자 (ㄱ, ㄲ, ㄳ, ㄴ...)
19x21x28 = 11172
55203-44032+1=11172
유니코드에서 한글은 10진수로 44032 ~ 55203 까지다
charCodeAt() 메서드는 주어진 인덱스에 대한 UTF-16 코드를 나타내는 0부터 65535 사이의 정수를 반환한다
'가'.charCodeAt(0); // 44032
가는 44032, 각은 44033이다
가에 종성을 다 붙이고 나면 개에 종성을 붙이는 순서로 이어진다
초성 얻기
unicode 정수값을 uni라고 했을 때
parseInt((uni - 44032) / (21 * 28))
=> 0 ~ 18 사이의 값이 나오는데, 초성 순서와 일치한다
ㄱ = 0, ㄲ = 1
# 초성 얻기
var uni = '꽃'.charCodeAt(0);
console.log(parseInt((uni - 44032) / (21 * 28))); // 1
var uni = '달'.charCodeAt(0);
console.log(parseInt((uni - 44032) / (21 * 28))); // 3
중성 얻기
unicode 정수값을 uni라고 했을 때
parseInt(((uni - 44032) % (21 * 28)) / 28)
=> 0 ~ 20 사이의 값이 나오는데, 중성 순서와 일치한다
ㅏ = 0, ㅐ = 1, ㅣ = 20
# 중성 얻기
var uni = '달'.charCodeAt(0);
parseInt(((uni - 44032) % (21 * 28)) / 28); // 0
var uni = '일'.charCodeAt(0)
parseInt(((uni - 44032) % (21 * 28)) / 28); // 20
종성 얻기
unicode 정수값을 uni라고 했을 때
parseInt(((uni - 44032) % (21 * 28)) % 28)
=> 0 ~ 27 사이의 값이 나오는데, 종성 순서와 일치한다
종성 없음 = 0, ㄱ = 1, ㅎ = 27
# 종성 얻기
var uni = '밤'.charCodeAt(0);
parseInt(((uni - 44032) % (21 * 28)) % 28); // 16
var uni = '차'.charCodeAt(0)
parseInt(((uni - 44032) % (21 * 28)) % 28); // 0
반응형
'JavaScript' 카테고리의 다른 글
[#. Base64 ] atob(), btoa() Base64 인코딩과 디코딩 (0) | 2022.03.17 |
---|---|
[#. JavaScript] 일수 계산하기 (0) | 2022.01.04 |
[#. JavaScript] MDN에 나와 있는 Object Method 정리하기 (0) | 2021.11.29 |
[#. JavaScript] ES6 정리하기 (0) | 2021.11.23 |
[#. JavaScript] input maxlength 글자수 제한하기 (0) | 2021.10.27 |