2014-01-14 7 views
0

예를 들어,자바 스크립트 이메일 유효성 검사 조건 문제

<input id="email" name="email" style="width:100%;" type="text"> 

자바 스크립트,

function validateEmail(email) { 
    var re = /^(([^<>()[\]\\.,;:\[email protected]\"]+(\.[^<>()[\]\\.,;:\[email protected]\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; 
    return re.test(email); 
} 

이 대부분의 경우 잘 작동

만 입력되면

2★@2.com 

이런 종류의 inp와 같은 것 특수 문자가 포함 된 ut

유효성을 검사하지 않습니다.

좋은 해결책이 있습니까?

+0

확인 메일을 보내십시오. 대답을받은 경우에만 유효성을 검사합니다. 완벽한 검증. – Abhitalks

답변

1

Stop Validating Email Addresses With Complicated Regular Expressions을 읽으십시오. 그것이 말하는 것처럼

, 이메일 :

"Look at all these spaces!"@example.com 

완벽하게 유효합니다.

결론 :

  1. 이메일을 확인하는 복잡한 정규식을 사용하지 마십시오. /@/ 이메일을 보내고

진지하게 대답을 기다리는 대부분의 사용자 오류

  • 유효성을 확인 괜찮 복잡한 정규식 문제 해결의 시도는 운명 일반적으로 수정과 악화되고 유지되는

  • 0

    유효성 검사 클라이언트 측은 사용자가 제거하거나 편집 할 수 있으므로 매우 의미가 없습니다. 그것도 서버 측에서 확인해야합니다. 아니면 전혀 검증하지 않고 메일 만 받으면됩니다!

    var emailfilter = /(([a-zA-Z0-9\-?\.?]+)@(([a-zA-Z0-9\-_]+\.)+)([a-z]{2,3}))+$/; 
        if(emailfilter .test(string)) { //mail 
    

    }

    EMAILADDRESS 메일 링없이 존재하고 사용자 기다리고 확인 URL을 클릭 할 경우 확인할 수있는 방법이 없습니다. 전자 메일의 패턴과 일치하는 경우에만 유효성을 검사 할 수 있습니다.

    +0

    글쎄,이 이메일은 유효하지 않습니다. –