정규식 예
Language/JAVASCRIPT 2010. 9. 27. 18:46이메일 체크 정규식
/^[0-9a-zA-Z]([-_\.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_\.]?[0-9a-zA-Z])*\.[a-zA-Z]{2,3}$/i;
핸드폰번호 정규식
/^\d{3}-\d{3,4}-\d{4}$/;
일반 전화번호 정규식
/^\d{2,3}-\d{3,4}-\d{4}$/;
아이디나 비밀번호 정규식
/^[a-z0-9_]{4,20}$/;
var regExp = /^01([0|1|6|7|8|9]?)-?([0-9]{3,4})-?([0-9]{4})$/;
if ( !regExp.test( document.frm.hp.value ) ) {
alert("잘못된 휴대폰 번호입니다. 숫자, - 를 포함한 숫자만 입력하세요.");
return false
}
추가 - php 경우
<?
$exe = "^01([0|1|6|7|8|9])-?([0-9]{3,4})-?([0-9]{4})$";
$text = "01726161874";
$result = eregi($exe,$text);
if($result){
echo $text;
}else{
echo "잘못된 문자열";
}
?>
[ 출처 ] : 『 skystory.kr 』- 세상의 끝으로 함께...
[ 제목 ] : 자바스크립트 정규식 (메일,핸드폰,전화,아이디,패스워드) | [ 작성자 ] : 하늘이야기
출처는 위와 같다.
응용
//숫자만 받기
<script>
var regExp = /[^0-9]/;
var hp_value="";
function aa(){
for(var i=0;i<document.getElementById('hp').value.length;i++){
var checkStr = document.getElementById('hp').value.charAt(i);
hp_value+=checkStr.replace(regExp,"");
}
document.getElementById('hp').value=hp_value;
}
</script>
<input type="text" name="hp" id="hp" onblur="aa()">
// 숫자만 받기
사용방법은
자스에서는 replaceAll 을 지원하지 않음으로
var regExp = 정규식;
var 빈값="";
function aa(){
for(var i=0;i<str.length;i++){
var checkStr = str.charAt(i);
빈값+=checkStr.replace(regExp,"");
}
}
</script>
/^[정규식]/;
정규식 부분 제거
/[^정규식]/;
정규식 부분외 제거
대충 이런식
숫자
/^[0-9]/;
영문
/^[a-zA-Z]/;
한글
/^[ㄱ-ㅎㅏ-ㅣ가-힣]/;
특문
/[^0-9a-zA-Zㄱ-ㅎㅏ-ㅣ가-힝]/;
(한,영,숫자를 제외한 모든 문자)
정규식 졸 어렵;ㅠ
=======================================2010.8.26 내용추가
스크립트 제거
var regExp =/^[\<(script)+\>]/gi;
문장, 문자열을 제거할때는
[(문자열)] 로 표시하면 됨
/g // str 의 모든 문자열 대상 검사
/i // str 의 대소문자 구분 없이 모든 문자 검사
=================================== 내용 추가
정규식은 / / 으로 시작 끝
\w - 한자리 문자 숫자
\d - 한자리 숫자
^ - 시작
. - 한자리 문자
$ - 표현식 끝
즉 내가 4444 라는 식으로 입력되길 원한다면
/^\d\d\d\d$/ 이런식
반복되는 형태를 간결히 하기 위해 있는것이 수량한정자
* - 0혹은 그 이상(선택적)
+ - 1번 이상
? - 0혹은 한번
{n} - n번 여기서 한가지 더 {min, max} - min 번에서 max까지 허용
즉 위에 2009/09/01 이라고 입력되길 원한다면
/^\d{2,4}\/\d{2}\/\d{2}$/
이런식이 될것이다
앞에 2009는 4글자 2009의 경우와 09의 경우 두가지를 다 생각한것이다
그리고 이것을 확일하는 방법은
regExp라는 객체의 test()메소드를 이용하여 정규식을 이용 확인할수 있다..
예를 들어 내가 입력한 텍스트의 id명이 input 이라고 가정한다면
var regexp=/^\d{2,4}\/\d{2}\/\d{2}$/;
if(! regexp.test(input.value)){
}
이런식으로 확인가능 하다 test()의 반환형은 boolean 이다
우리가 했던 E-mail 확인 정규식은
var regexp=/^\w{3,10}/@/\w{3.10}\.\w{3,6}$/
if(! regexp.test(email.value)){
alert("잘못된 형식입니다");
}
이런식으로 확인 가능 하지 않을가 생각한다..
alert 가 아닌 span을 이용하면
function eee(){
var regexp=/^\w{3,10}/@/\w{3.10}/.\w{3,6}$/
if(! regexp.test(email.value)){
document.getElementById(email).innerHTML="잘못된 형식입니다";
}
}
'Language > JAVASCRIPT' 카테고리의 다른 글
history(), find(), setTimeout(), clearTimeout(), setIntervalTime(), moveBy(), moveTo(), resizeBy(), resizeTo(), scrollBy(), stop() (0) | 2010.10.13 |
---|---|
부모창 리로드시 경고 메시지 없애기 (0) | 2010.10.12 |
이미지 슬라이딩 출력 수정본 (0) | 2010.09.24 |
이미지 슬라이딩 출력 (0) | 2010.09.24 |
업로드 선택 이미지 미리 보기 (0) | 2010.09.24 |