본문 바로가기

Javascript

한글만 입력 가능한 javascript


  var OriginalValue = "";
  function koreanCheck(str) {
   var i;
   var ch;
   var ReturnBoolean = false;

   var DivIdObj = document.getElementById("nickname_div");
   var DivSplitObj = document.getElementById("nickname_split");
   var DivSplitObj1 = document.getElementById("nickname_split1");
   var DivSplitObj2 = document.getElementById("nickname_split2");
   var DivSplitObj3 = document.getElementById("nickname_split3");

//   12593 ~ 12686 ㄱ 부터 ㆎ
//   3131 ~ 318E (16진수)
//   44032 ~ 55203 가 부터 힣
//   AC00 ~ D7A3 (16진수)
//   11264
//   var StartValue = "12593"
//   var TempChar
//   for (i=0;i<94;i++){
//    TempChar = eval(StartValue + "+" + i).toString(16);
//    DivSplitObj2.innerText += unescape( "%u" + TempChar ) + ", ";
//   }

   for (i=0;i<str.value.length;i++) {
    ch = escape(str.value.charAt(i));        //ISO-Latin-1 문자셋으로 변경
    DivSplitObj.innerText = str.value.charAt(i);
    DivSplitObj1.innerText = ch;
    DivSplitObj2.innerText = parseInt( ch.substring(2, ch.length) , 16);
    DivSplitObj3.innerText = strCharByte(ch) + "," + AllowValueCheck(str.value.charAt(i));
    if ( strCharByte(ch) ) { //한글일 경우
     ReturnBoolean = true;
    }
    else if ( AllowValueCheck(str.value.charAt(i)) ){ //허용된 문자일 경우
     ReturnBoolean = true;
    }
    else{
     ReturnBoolean = false;
    }
   }

   if (ReturnBoolean){
    if (OriginalValue != str.value) ToCheckNickName();
   }
   else{
    DivIdObj.innerHTML = "한글과 조합하여 만들 수 있습니다.";
    form1.nickname_chk.value = "";
   }

  }


  function strCharByte(chStr) {
   if (chStr.substring(0, 2) == '%u') {
    var Temp16 = parseInt(chStr.substring(2, chStr.length), 16);
    if ( ((Temp16 >= 12593)&&(Temp16 <= 12686)) || ((Temp16 >= 44032)&&(Temp16 <= 55203)) )//한글
     return true;
    else
     return false;
   }
   else {
    return false;
   }
  }


  function AllowValueCheck(ObjValue){
   var comp = "0123456789!@#$^*()_+~,."; 
   var str = ObjValue;
   for(i=0;i<str.length;i++) {
    if(comp.indexOf(str.substring(i,i+1))<0) return false;
   }
   return true;
  } 


  function ChangeConfirm()
  {
   if (form1.nickname_chk.value == "OK"){
    if(confirm("변경하시겠습니까?")){
     form1.action = "myinfo_change_nickname_proc.asp";
     form1.method = "POST";
     form1.target = "";
     form1.submit();
    }
   }
   else{
    alert("이미 사용중인 필명입니다.");
    return;
   }
  }