이메일로 로그인하기 정규식 질문요 채택완료

회원가입할때에 아이디에 이메일로 받아서 가입을 하려고하는데

lib/register.lib.php파일에서

기본은

Copy
function valid_mb_id($reg_mb_id){    if (preg_match("/[^0-9a-z_]+/i", $reg_mb_id))        return "회원아이디는 영문자, 숫자, _ 만 입력하세요.";    else        return "";}

이렇게 되어있는 부분을

 

Copy
function valid_mb_id($reg_mb_id){    if (!preg_match("/([0-9a-zA-Z_-]+)@([0-9a-zA-Z_-]+)\.([0-9a-zA-Z_-]+)/", $reg_mb_id))        return "이메일로해.";    else        return "";}

 

이렇게 수정하여서 이메일양식이 아닐경우에

이메일로해 라는 alert창이 뜨도록 하였습니다.

그런데 회원가입시에 이부분이 통과가 되어야하는데

계속 이부분에서 걸리는데

정규식이 잘못된건지 어떤건지 모르겠네요

도움좀 부탁드리겠습니다~

답변 1개

채택된 답변
+20 포인트

아래와 같이 수정해주세요.

if (!preg_match("/([0-9a-zA-Z_-]+)@([0-9a-zA-Z_-]+)\.([0-9a-zA-Z_-]+)/", $reg_mb_id))

if (!preg_match("/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/", $reg_mb_id))

로 변경해주세요. 

 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인
🐛 버그신고