[ Java Script ] 한글만, 영문자만, 숫자만 걸러내는 정규식


  지난 번에도 비슷한 걸 만들긴 했었는데, 그 때는 거의 이해를 못하고 베끼듯이 만든 거였고, 이번에는 다시 한 번 차근차근 보면서 만들어봤습니다.(뭐 그렇다고 완전히 이해한 건 아니고 30%쯤 이해한 것 같네요... >-<ㅇ )


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">

<SCRIPT LANGUAGE="JavaScript">
<!--
 function validateInputString(inputString, workType)
 {
  var v_normal = '';
//  alert("input : "+ inputString);

  if(workType == "onlyNumber"){
   v_normal = /[^0-9]/g; 
  }//아래로
  else if(workType == "onlyAlphabet"){
   v_normal = /[^a-zA-Z]/g;
  }//아래로
  else if(workType == "onlySmallAlphabet"){
   v_normal = /[^a-z]/g;
  }//아래로
  else if(workType == "onlyCapitalAlphabet"){
   v_normal = /[^A-Z]/g;
  }//아래로
  else if(workType == "onlyHangul"){ // 한글(초성 포함)만 가능
   v_normal = /[^ㄱ-ㅎ가-힣]/g; //본래는 '히+ㅎ'까지 체크해야 하나 euc-kr은 '힝'까지만 가능
  }//아래로
  else if(workType == "onlyHangulWhiteSpace"){ // 한글, 공백만 가능
   v_normal = /[^ㄱ-ㅎ가-힣\s]/g;
  }//아래로
  else if(workType == "onlyPerfectHangul"){ // 한글(초성 제외)만 가능
   v_normal = /[^가-힣]/g;
  }//아래로
  else if(workType == "onlyEmail"){ // 이메일 주소(영문자, 숫자, dot(.))만 가능
   v_normal = /[^a-zA-Z0-9.]/g;
  }//아래로
  else{
   alert("정규식 선택이 부적합합니다.");
   return "";
  }

  if(v_normal.test(inputString)){
   var v_result = inputString.replace(v_normal, '');
//   alert("result : "+ v_result);
   return v_result;
  }//아래로
  else{
   return inputString;
  }
 }


 function onlyHangul(inputObj)
 {
  inputObj.value = validateInputString(inputObj.value, "onlyHangul");
 }


 function onlyNumber(inputObj)
 {
  inputObj.value = validateInputString(inputObj.value, "onlyNumber");
 }


 function onlyAlphabet(inputObj)
 {
  inputObj.value = validateInputString(inputObj.value, "onlyAlphabet");
 }


 function onlyEmail(inputObj)
 {
  inputObj.value = validateInputString(inputObj.value, "onlyEmail");
 }
//-->
</SCRIPT>

</HEAD>

<BODY>

<form name="frm">
 한글만 : <input type="text" name="test" onBlur="onlyHangul(this)" onChange="onlyHangul(this)" /><br/>
 숫자만 : <input type="text" name="test" onBlur="onlyNumber(this)" onChange="onlyNumber(this)" /><br/>
 영어만 : <input type="text" name="test" onBlur="onlyAlphabet(this)" onChange="onlyAlphabet(this)" /><br/>
 이메일 : <input type="text" name="test" onBlur="onlyEmail(this)" onChange="onlyEmail(this)" onKeyUp="onlyEmail(this)" /><br/>
</form>

</BODY>
</HTML>




한글만, 영문자만, 숫자만, 이런 식으로 용도에 나눠쓰게 만들어보긴 했습니다만...뭔가 좀 깔끔하지 않다는 느낌이군요. 좀 더 연구해봐야겠습니다.

normalizeInputString.html

이 글과 관련있는 글을 자동검색한 결과입니다 [?]

by 별소리 | 2009/10/25 18:47 | ▷ Java Script | 트랙백 | 덧글(0)

트랙백 주소 : http://byulbada.egloos.com/tb/2463319
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]

:         :

:

비공개 덧글

◀ 이전 페이지다음 페이지 ▶