반응형
자바스크립트 한글의 초성, 중성, 종성을 추출해주는 코드입니다.
function get초성(src) {
var 초성글자 = '';
for(var i=0; i<src.length; i++) {
var index = ((src.charCodeAt(i) - 44032) /28) / 21;
if(index >= 0) {
초성글자 += String.fromCharCode(index + 4352);
}
}
return 초성글자;
}
function get중성(src) {
var 중성글자 = '';
for(var i=0; i<src.length; i++) {
var index = ((src.charCodeAt(i)- 44032) / 28) % 21;
if(index>=0){
중성글자 += String.fromCharCode(index + 4449);
}
}
return 중성글자;
}
function get종성(src) {
var 종성글자 = '';
for(var i=0; i<src.length; i++) {
var index = (src.charCodeAt(i) - 44032) % 28;
if(index > 0) {
종성글자 += String.fromCharCode(index + 4519);
}
}
return 종성글자;
}
alert(get초성("아이유짱"));
alert(get중성("아이유짱"));
alert(get종성("아이유짱"));
-------------------------------------
'과자' 예를 들면,
위의 소스대로 하면 초성은 ᄀᄌ 이고
아래 소스대로 하면 초성은 ㄱㅈ 입니다.
이 둘의 차이를 모르시겠나요?
ᄀᄌ vs ㄱㅈ 한줄로 쓰니 확보이시나요?
전자는 말그대로 초성영역의 기역과 지읒입니다.
후자는 키보드에서 기역과 지읒을 개별로 입력했을 때의 경우입니다.
단어를 분해하고 다시 조립하고 변환하는 경우에는 전자가 적합하고,
전화번호부의 초성 검색 같은 경우에는 후자가 적합합니다.
-------------------------------------
function getInitSound(src) {
var init = [ 'ㄱ', 'ㄲ', 'ㄴ', 'ㄷ', 'ㄸ', 'ㄹ', 'ㅁ', 'ㅂ', 'ㅃ', 'ㅅ', 'ㅆ', 'ㅇ', 'ㅈ', 'ㅉ', 'ㅊ', 'ㅋ', 'ㅌ', 'ㅍ', 'ㅎ' ];
var iSound = '';
for(var i=0; i<src.length; i++) {
var index = Math.floor(((src.charCodeAt(i) - 44032) /28) / 21);
if(index >= 0) {
iSound += init[index];
}
}
return iSound;
}
function getMiddleSound(src) {
var t = [ 'ㅏ', 'ㅐ', 'ㅑ', 'ㅒ', 'ㅓ', 'ㅔ', 'ㅕ', 'ㅖ', 'ㅗ', 'ㅘ', 'ㅙ', 'ㅚ', 'ㅛ', 'ㅜ', 'ㅝ', 'ㅞ', 'ㅟ', 'ㅠ', 'ㅡ', 'ㅢ', 'ㅣ' ];
var middle = '';
for(var i=0; i<src.length; i++) {
var index = Math.floor(((src.charCodeAt(i)- 44032) / 28) % 21);
if(index >= 0){
middle += t[index]
}
}
return middle;
}
function getFinalSound(src) {
var t = [ '', 'ㄱ', 'ㄲ', 'ㄳ', 'ㄴ', 'ㄵ', 'ㄶ', 'ㄷ', 'ㄹ', 'ㄺ', 'ㄻ', 'ㄼ', 'ㄽ', 'ㄾ', 'ㄿ', 'ㅀ', 'ㅁ', 'ㅂ', 'ㅄ', 'ㅅ', 'ㅆ', 'ㅇ', 'ㅈ', 'ㅊ', 'ㅋ', 'ㅌ', 'ㅍ', 'ㅎ' ];
var final = '';
for(var i=0; i<src.length; i++) {
var index = (src.charCodeAt(i) - 44032) % 28;
if(index >= 0){
final += t[index]
}
}
return final;
}
alert(getInitSound("각이유짱"));
alert(getMiddleSound("각이유짱"));
alert(getFinalSound("각이유짱"));
반응형
'스크립트' 카테고리의 다른 글
css 말줄임 표시 cut string truncate string (0) | 2018.01.31 |
---|---|
javascript long to date (0) | 2018.01.15 |
bootstrap datepicker range (0) | 2018.01.12 |
javascript isArray (0) | 2018.01.12 |
maven 자주 사용하는 빌드 옵션 (0) | 2018.01.08 |
javascript 정규식 생성 방법 (0) | 2018.01.07 |
javascript - 날짜 계산 샘플 (0) | 2018.01.06 |
javascript date to string format 날짜 변환 (0) | 2018.01.06 |