썩구노트

한글 초성 중성 종성 찾기 본문

JavaScript

한글 초성 중성 종성 찾기

양석규 2016. 10. 14. 14:45

<SCRIPT>


var laHangulChoSung          = Array('ㄱ', 'ㄲ', 'ㄴ', 'ㄷ', 'ㄸ', 'ㄹ', 'ㅁ', 'ㅂ', 'ㅃ', 'ㅅ', 'ㅆ', 'ㅇ', 'ㅈ', 'ㅉ', 'ㅊ', 'ㅋ', 'ㅌ', 'ㅍ', 'ㅎ');
var laHangulChoSungCode  = Array('12593', '12594', '12596', '12599', '12601', '12609', '12610', '12611', '12613', '12614', '12615', 
                                 '12616', '12617', '12618', '12619', '12620', '12621', '12622');
var laHangulJungSung         = Array('ㅏ', 'ㅐ', 'ㅑ', 'ㅒ', 'ㅓ', 'ㅔ', 'ㅕ', 'ㅖ', 'ㅗ', 'ㅘ', 'ㅙ', 'ㅚ', 'ㅛ', 
                                 'ㅜ', 'ㅝ', 'ㅞ', 'ㅟ', 'ㅠ', 'ㅡ', 'ㅢ', 'ㅣ' );
var laHangulJongSung         = Array('', 'ㄱ', 'ㄲ', 'ㄳ', 'ㄴ', 'ㄵ', 'ㄶ', 'ㄷ', 'ㄹ', 'ㄺ', 'ㄻ', 'ㄼ', 'ㄽ', 'ㄾ', 'ㄿ', 'ㅀ', 
                                 'ㅁ', 'ㅂ', 'ㅄ', 'ㅅ', 'ㅆ', 'ㅇ', 'ㅈ', 'ㅊ', 'ㅋ', 'ㅌ', 'ㅍ', 'ㅎ' );


// 'ㄱ' 같은 초성 하나만 입력할 경우를 위함

function fncSearchHangulChosungCodeChk(HangulChoSung)
{
    var i = 0;
    var lbRtn = false;

    for(i=0; i<laHangulChoSungCode.length; i++){
        if(laHangulChoSungCode[i] == HangulChoSung){
            lbRtn = true;
            break;
        }
    }
    return lbRtn;
}


// 초성, 중성, 종성 찾기.

function fncSearchHangul_Cho_Jung_Jong_Sung(oStr, flag)
{
    var i = 100;
    var lsHangulChoSung = oStr.charCodeAt(0);

    if(fncSearchHangulChosungCodeChk(lsHangulChoSung))
    {
        if(flag == "cho")  return oStr.substr(0,1);
        if(flag == "jung") return "";
        if(flag == "jong") return "";
    }
    else{
        var lsUniCode  = lsHangulChoSung - 0xAC00;
        var lsJongSung = lsUniCode % 28;
        var lsJungSung = ((lsUniCode - lsJongSung) / 28 ) % 21;
        var lsChoSung  = parseInt(((lsUniCode - lsJongSung) / 28 ) / 21);

        if(flag == "cho")  return laHangulChoSung[lsChoSung];
        if(flag == "jung") return laHangulJungSung[lsJungSung];
        if(flag == "jong") return laHangulJongSung[lsJongSung];
    }
}



//

function fncSearchHangulChoSung()
{
    var i = 0;
    var lsStr     = document.all.xxx.value;
    document.all.firstString.innerHTML = lsStr.substr(0,1);
    document.all.firstString.innerHTML = document.all.firstString.innerHTML + "(" + lsStr.charCodeAt(0) + ")";

    var lsCho     = fncSearchHangul_Cho_Jung_Jong_Sung(lsStr, "cho");
    var lsJung    = fncSearchHangul_Cho_Jung_Jong_Sung(lsStr, "jung");
    var lsJong    = fncSearchHangul_Cho_Jung_Jong_Sung(lsStr, "jong");

    document.all.cho.innerHTML  = lsCho;
    document.all.jung.innerHTML = lsJung;
    document.all.jong.innerHTML = lsJong;
}

</SCRIPT>


<form>
<table border="1">
<tr><td>첫글자의 초-중-종성 (검색시 도움이 되지 않을까 하는 생각.)</td></tr>
<tr><td id="firstString">첫글자.</td></tr>
<tr><td id="cho">cho</td></tr>
<tr><td id="jung">jung</td></tr>
<tr><td id="jong">jong</td></tr>
<tr><td>
        <input type="text" name="xxx" value="가나다">
        <input type="button" value="어이~어이~" onclick="fncSearchHangulChoSung();">
    </td></tr>
<table>
</form>


'JavaScript' 카테고리의 다른 글

자바스크립트(javascript): 기간 검색시 두 날짜 차이 일자로 구하기  (0) 2016.10.22
confirm  (0) 2016.10.14
뒤로가기 앞으로가기 새로고침  (0) 2016.10.14
placeholder()와 같은 기능!  (0) 2016.10.14
JSTL 강좌  (0) 2016.10.14