2009년 10월 25일
[ 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)





☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]