한글 초성, 중성, 종성 자르기

한글 초성, 중성, 종성 자르기

 


/*========================================
 js_han_split.js
 한글 초성,중성,종성 자르기

 사용법
 arr = js_han_split('뷃');
 arr -> Array('ㅂ','ㅞ','ㄼ');

 원리
 한글의 유니코드는
 초성 기준으로 588개로 나눌 수 있다.(가~깋:588개, 하~힣도 갯수가 같다)
 초성 19개, 중성은 21개, 종성은 28개로 나눠지는데, 이것이 일정하게 나뉜다.
 그 규칙을 바탕으로 초,중,종성의 차이를 계산해서 초,중,종성을 알아낸다.


 mins01,mins,공대여자
 MSN,NateOn : mins01(at)lycos.co.kr
 2007-03-06
 "공대여자는 예쁘다."를 나타내야만 쓸 수 있습니다.
//========================================*/
function js_han_split(char){ //한글을 자름
 var char_st = 44032 ;//'가'의 유니코드 넘버(10진수)
 var char_ed = 55203 ;//'힝'의 유니코드 넘버(10진수)
 //초성구분 : 588단위로 잘림
 //가까나다따라마바빠사싸아자짜차카타파하 :초성 19개
 //가개갸걔거게겨계고과괘괴교구궈궤귀규그긔기 : 중성 21개
 //가각갂갃간갅갆갇갈갉갊갋갌갍갎갏감갑값갓갔강갖갗갘같갚갛 : 종성 28개
 var arr_1st=new Array('ㄱ','ㄲ','ㄴ','ㄷ','ㄸ','ㄹ','ㅁ','ㅂ','ㅃ','ㅅ','ㅆ','ㅇ','ㅈ','ㅉ','ㅊ','ㅋ','ㅌ','ㅍ','ㅎ');//초성 19개
 var arr_2nd=new Array('ㅏ','ㅐ','ㅑ','ㅒ','ㅓ','ㅔ','ㅕ','ㅖ','ㅗ','ㅘ','ㅙ','ㅚ','ㅛ','ㅜ','ㅝ','ㅞ','ㅟ','ㅠ','ㅡ','ㅢ','ㅣ');//중성 21개
 var arr_3th=new Array('','ㄱ','ㄲ','ㄳ','ㄴ','ㄵ','ㄶ','ㄷ','ㄹ','ㄺ','ㄻ','ㄼ','ㄽ','ㄾ','ㄿ','ㅀ','ㅁ','ㅂ','ㅄ','ㅅ','ㅆ','ㅇ','ㅈ','ㅊ','ㅋ','ㅌ','ㅍ','ㅎ');//종성 28개

 //======================================================
 if(char.length>2){char=char.charAt(0);}
 var uninum = escape(char);
 if(uninum.length<4) return false;//한글이 아니다
 uninum = parseInt(uninum.replace(/\%u/,''),16);
 if(uninum < char_st || uninum > char_ed) return false;//한글이 아니다
 var uninum2 = uninum-char_st;
 var arr_1st_v = Math.floor(uninum2/588);
 uninum2 = uninum2%588;
 var arr_2nd_v = (Math.floor(uninum2/28));
 uninum2 = (uninum2%28);
 var arr_3th_v = uninum2;
// alert(arr_1st_v); alert(arr_2nd_v); alert(arr_3th_v);
 var return_arr=new Array(arr_1st[arr_1st_v],arr_2nd[arr_2nd_v],arr_3th[arr_3th_v]);
// alert(return_arr);
 return return_arr;
}

댓글
  • No Nickname
    No Comment
  • 권한이 없습니다.
    {{m_row.m_nick}}
    -
목록형 📷 갤러리형
제목
[기본형] HTML (with 부트스트랩5.3 , jquery 3.7, vue.js)
유용한 리눅스(LINUX) 명령어
[공지] 기술 게시판
4.28
4.29
4.30
5.1
5.2
5.3
5.4
5.5
5.6
5.7
5.8
5.9
5.11
5.12
5.13
5.14
5.15
5.16
5.17
5.18
5.19
5.20
5.21
5.22
5.23
5.24
5.25
5.26
5.27
5.28
5.29
5.30
5.31
6.1