묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
(php)정규표현식에 관한 질문입니다.^^;
2003.07.12 23:37
if(ereg("([^[:space:]]+)", $email)
&& (!ereg("(^[_0-9a-zA-Z-]+(.[_0-9a-zA-Z-]+)*@[0-9a-zA-Z-]+(.[0-9a-zA-Z]+)$)",$email)) )
{
error("INVALID_EMAIL");
exit;
}
간단하게 -_-;;;
이메일 체크하는 정규 표현식입니다.-->책에서 예제로 되어 있는거 빼온거에요 ^^;;;
제가 좀 이해가 안되는것은 -_-;
이메일에 스페이스바로 시작 하는것을 막는 조건문이긴 한데;;;
([^[:space:]]+) 라면-->공백문자가 아닌것 ~~~ 이라는 뜻이겠죠 ^^;;?
제가 생각하기엔 저 조건문을 둘러보면;;
공백문자가 아니고 이메일형식이 아니라면 에러처리 해라~!!! 로 생각했거든요 ^^;
그렇게 되면
둘다 참이 되어야 에러처리가 되야 하기때문에 -_-;;;
공백문자가 아니고가 걸립니다. 제 생각엔;;;
저 말대로라면 앞에 공백문자가 와야 되고 또 앞에 ^[_0-9a-zA-Z-]+ 에 해당하는 문자가 와야 된다면
공백문자와 ^[_0-9a-zA-Z-]+ 가 서로 엉켜 버리는게 아닌가요 ^^;;
그런데 실제로 저렇게 된걸 실행하면 -_-;
오류없이 잘 되던데;;; 앞에 공백문자 넣으면 에러처리도 잘되고;;;
저런 경우 어떻게 해석을 해야 되는건가요 ^^;;
--에구 에구 질문하기도 힘드는군요 워낙 아는게 없어서 ^^
답변해 주시면 정말 감사하겠습니다.^^)/
&& (!ereg("(^[_0-9a-zA-Z-]+(.[_0-9a-zA-Z-]+)*@[0-9a-zA-Z-]+(.[0-9a-zA-Z]+)$)",$email)) )
{
error("INVALID_EMAIL");
exit;
}
간단하게 -_-;;;
이메일 체크하는 정규 표현식입니다.-->책에서 예제로 되어 있는거 빼온거에요 ^^;;;
제가 좀 이해가 안되는것은 -_-;
이메일에 스페이스바로 시작 하는것을 막는 조건문이긴 한데;;;
([^[:space:]]+) 라면-->공백문자가 아닌것 ~~~ 이라는 뜻이겠죠 ^^;;?
제가 생각하기엔 저 조건문을 둘러보면;;
공백문자가 아니고 이메일형식이 아니라면 에러처리 해라~!!! 로 생각했거든요 ^^;
그렇게 되면
둘다 참이 되어야 에러처리가 되야 하기때문에 -_-;;;
공백문자가 아니고가 걸립니다. 제 생각엔;;;
저 말대로라면 앞에 공백문자가 와야 되고 또 앞에 ^[_0-9a-zA-Z-]+ 에 해당하는 문자가 와야 된다면
공백문자와 ^[_0-9a-zA-Z-]+ 가 서로 엉켜 버리는게 아닌가요 ^^;;
그런데 실제로 저렇게 된걸 실행하면 -_-;
오류없이 잘 되던데;;; 앞에 공백문자 넣으면 에러처리도 잘되고;;;
저런 경우 어떻게 해석을 해야 되는건가요 ^^;;
--에구 에구 질문하기도 힘드는군요 워낙 아는게 없어서 ^^
답변해 주시면 정말 감사하겠습니다.^^)/
댓글 4
-
뒹굴리스트
2003.07.13 00:08
왠지 &&대신 || 이 되야할 것 같은 생각;;; [정규표현식 제일 짜증남;ㅁ;] -
톨~~~
2003.07.13 01:45
문제는 저 정규 표현식이 제대로 구현이 되더라구요 ㅜ.ㅡ;
빈공백문자 넣고 이멜주소 쓰면 다시 쓰라도 제대로 에러처리가 되구요 -0-;;;
어떤식으로 해석을 해야 되는건지 난감해서요 ^^;;;
첨에 제 생각엔 if(!ereg("([^[:space:]]+)" ,$email) && ..... 이런식으로 넣어야 제대로 되는것이 아닌가 생각해서 해 봤는데 오히려 이게 공백문자를 못 찝어 내더군요;;;;
공백문자만 구분하는 정규표현식에선 위 처럼 해야 되던데~~~~
왜 이렇게 되는건지 이해가 ^^; 잘 안가더군요;;; -
행복한고니
2003.07.13 03:02
AND 조건 그리고 둘 다 만족해야하는..
1. 공백문자가 없어야 한다.
2. 문장의 처음부터 끝까지 메일의 형식에 맞지 않아야 한다(부정형이죠).
둘 다 AND로 붙이면 "공백문자가 없으면서 메일주소형식을 만족하지않는 문자열"에서 에러가 실행됩니다. 그런데 공백문자를 애써 잡아낼 필요는 없습니다. 어차피 메일 주소형식에는 공백문자가 없기때문에 에러를 출력하도록 되어있습니다. 즉 &&부터 그 앞부분은 없어도 되는 부분이라는 겁니다. -
톨~~~
2003.07.13 04:17
엇 그렇게 생각하면 ~~ 0_0;;;
저 표현이 말이 되는거군요;;;
앞의 표현식과 뒤에 표현식을 따로 따로 분리해서 참을 만들 생각만 했더니;;;;
결국 제가 and 조건에 대해서 해석하고 이해 하는것이 모자랐었는듯 하네요 ^^
답변 정말 감사합니다. 행복한고니님~~ ^^