이전 글에서 [팁] 플래시(Flash) 텍스트필드(TextField)에서 입력글자 제한하기! 에 대해 살펴봤습니다.
이번에는 자바 스크립트를 이용해 Input Text에서 동일한 기능을 하는 코드를 만들어 보겠습니다.
이전 글에서와 동일한 "제한조건"(영어, 숫자, -, _ 만 입력 가능)을 가정하기 때문에, 이전과 유사한 정규표현식을 활용할 것입니다.
그럼, 본격적으로 코드를 짜보겠습니다.
다음과 같이, form1이라는 이름의 폼과 my_id라는 이름의 Input Text, SAVE라는 이름의 Submit이 있습니다. Submit을 클릭하면 check()라는 함수를 실행하게 되고, 입력값이 정상이면 result.php파일을 실행하는군요...
그럼, 계속해서 check()라는 함수를 한 번 살펴볼까요?
check()의 목적은 my_id에 입력되는 글자를 검사하는 것입니다.
딱 보니 pattern이라는 변수의 정규표현식이 핵심인 것 같군요...
우리가 정의한 pattern은 test라는 정규표현식 비교함수를 통해 입력된 my_id라는 Input Text의 값과 비교하게 됩니다.
비교 결과, my_id에 "영어, 숫자, -, _"이외의 문자가 포함되었을 경우, 경고메세지가 나온 후, my_id로 포커스가 이동하게 되는군요...
물론, 입력 값에 문제가 없다면 정상적으로 다음 단계(result.php)로 넘어가구요...
비록 간단한 예이지만, 이것을 잘 활용한다면 아이디, 이메일, 고유번호 등을 자신의 구미에 맞게 제한할 수 있을 것입니다.
* 아이디와는 달리 이메일의 경우, 좀 더 복잡한 정규표현식이 필요할 겁니다. 저처럼 익숙하지 않은 사람들에게는 정말 눈돌아가는 식이지만...@_@; 이것도 자꾸 쓰다보면 익숙해 지겠죠? :)
이번에는 자바 스크립트를 이용해 Input Text에서 동일한 기능을 하는 코드를 만들어 보겠습니다.
이전 글에서와 동일한 "제한조건"(영어, 숫자, -, _ 만 입력 가능)을 가정하기 때문에, 이전과 유사한 정규표현식을 활용할 것입니다.
(MissFlash) 정규표현식에 익숙하지 않은 분은 sungsoo, Yu님의 글( http://blog.naver.com/niceyss/130020022592 )을 읽어보시기 바랍니다.
그럼, 본격적으로 코드를 짜보겠습니다.
다음과 같이, form1이라는 이름의 폼과 my_id라는 이름의 Input Text, SAVE라는 이름의 Submit이 있습니다. Submit을 클릭하면 check()라는 함수를 실행하게 되고, 입력값이 정상이면 result.php파일을 실행하는군요...
<form method='post' name='form1' action='./result.php' onsubmit='return check()'>
* ID <input type='text' name='my_id' value='<? $my_id ?>' style='width:670px; height:22px; ime-mode:disabled;' />
<input type='submit' name='SAVE' style='width:100px; height:24px;' value='OK' />
</form>
* ID <input type='text' name='my_id' value='<? $my_id ?>' style='width:670px; height:22px; ime-mode:disabled;' />
<input type='submit' name='SAVE' style='width:100px; height:24px;' value='OK' />
</form>
그럼, 계속해서 check()라는 함수를 한 번 살펴볼까요?
check()의 목적은 my_id에 입력되는 글자를 검사하는 것입니다.
<script language="javascript">
<!--
function check(){
var pattern = /(^[a-zA-Z0-9\-_]+$)/;
if(!pattern.test(form1.my_id.value)){
alert('영어, 숫자, -, _만 입력할 수 있습니다.');
form1.my_id.focus();
return false;
}else{
return;
}
}
</script>
<!--
function check(){
var pattern = /(^[a-zA-Z0-9\-_]+$)/;
if(!pattern.test(form1.my_id.value)){
alert('영어, 숫자, -, _만 입력할 수 있습니다.');
form1.my_id.focus();
return false;
}else{
return;
}
}
</script>
딱 보니 pattern이라는 변수의 정규표현식이 핵심인 것 같군요...
우리가 정의한 pattern은 test라는 정규표현식 비교함수를 통해 입력된 my_id라는 Input Text의 값과 비교하게 됩니다.
비교 결과, my_id에 "영어, 숫자, -, _"이외의 문자가 포함되었을 경우, 경고메세지가 나온 후, my_id로 포커스가 이동하게 되는군요...
물론, 입력 값에 문제가 없다면 정상적으로 다음 단계(result.php)로 넘어가구요...
비록 간단한 예이지만, 이것을 잘 활용한다면 아이디, 이메일, 고유번호 등을 자신의 구미에 맞게 제한할 수 있을 것입니다.
* 아이디와는 달리 이메일의 경우, 좀 더 복잡한 정규표현식이 필요할 겁니다. 저처럼 익숙하지 않은 사람들에게는 정말 눈돌아가는 식이지만...@_@; 이것도 자꾸 쓰다보면 익숙해 지겠죠? :)
'Tip&Tech > Web' 카테고리의 다른 글
[추천강좌] 초보자를 위한 서기님의 추천 PHP 동영상 강좌! (0) | 2007.08.08 |
---|---|
사이트 패스워드 관리의 최강자 RoboForm vs. 알패스 (3) | 2007.07.26 |
[팁] 링크 미리보기 툴(Snap Shots)을 붙여봅시다! (5) | 2007.06.15 |
유용사이트 소개 - URL을 짧은 주소로 줄여주는 사이트 (0) | 2007.03.21 |
플레이톡 1시간 사용기 (2) | 2007.03.13 |