자바스크립트(javascript) 정규식(regex) 에 대하여

By | 2월 6, 2009

1. 기본 설명
http://user.chollian.net/~spacekan/source/string/regExp.htm
http://blog.dreamwiz.com/media/index.asp?uid=yesmin&folder=0&list_id=5653711#MM_SCRIPT

2. 예제

(예제 1) [출처] 정규표현식 with Javascript(자바스크립트)|작성자 노스

이는 가장 단순한 형태의 정규표현식으로 쉽게 설명하기 위해 만든것으로 실제로 사용할 수도 있지만 현실에 잘 맞지 않을 수도 있음을 염두하길 바란다.

 

 YYYY-MM-DD 형태의 날짜 판별 스크립트.

<SCRIPT LANGUAGE="JavaScript">
<!--

function validateDate(){

   if(frm.birthday.value.search(/[12][0-9]{3}-[0-9]{2}-[0-9]{2}/) == -1){
        document.getElementById("birthdayDIV").style.display="block";
        isValidate = false;
    }
    else {
        document.getElementById("birthdayDIV").style.display="none";
    }

}

//-->

이메일 판별용 스크립트.

<SCRIPT LANGUAGE="JavaScript">

function validateEmail(){

    if(frm.email1.value.search(/(\S+)\@(\S+)\.(\S+)/) == -1){
         document.getElementById("emailDIV").style.display="block";
         isValidate = false;
    }
    else {
        document.getElementById("emailDIV").style.display="none";
    }

}

//-->

  

if(frm.birthday.value.search(/[12][0-9]{3}-[0-9]{2}-[0-9]{2}/) == -1){

위의 날짜 판별용 스크립트에는 () 를 찾아볼 수가 없다. 즉 이를 나중에 다시 불러 쓸 수 없다.
하나하나 뜯어 살펴보도록 하자.

 [12] : 1 혹은 2 둘중 하나

[0-9] : 0 1 2 3 4 5 6 7 8 9 중 하나

{3} : [0-9] 를 3번 반복 

즉 여기까지 1000 부터 2999 까지의 숫자를 의미한다.

- 는 그냥 문자 -를 의미한다.

[0-9], {2} : 0~9까지의 숫자를 두번 즉, 00부터 99까지. 

전부 표현하자면 1000-00-00 부터 2999-99-99까지 표현이 가능하게 되어있다.

if(frm.email1.value.search(/(\S+)\@(\S+)\.(\S+)/) == -1){

이는 각각이 ()로 묶여 있어 이후에 따로 불러서 사용 할 수 있다. 

(\S+) : 한개이상 문자열. 이후 $1 로 불러올 수 있다.

\@ : @ 문자 표현

(WS+) : 한개이상 문자열. 이후 $2 로 불러올 수 있다.

\. : . 문자 표현

(WS+) : 한개이상 문자열. 이후 $3 로 불러올 수 있다.

 
qkfl2@korea.com 을 받았을 경우

 alert("이메일은 "+ RegExp.$1 + "@" + RegExp.$2 + "." + RegExp.$3 + "입니다.");

 로 불러올 수 있다.

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments