2014-03-27 4 views
-2

전자 메일 유효성 검사 식 \w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*은 공백을 허용하지만 그렇지 않으면 완벽하게 작동합니다.전자 메일 검증 식 w + ([- +. '] w +) * @ w + ([-.] w +) * . w + ([-.] w +) * 공백 허용

john [email protected] 

가 어떻게 공백을 허용하지 이것을 제한 할 수

그것은 다음과 같은 이메일 주소를 실패하지 않는 이유는 무엇입니까?

+0

정규식으로 이메일 주소의 유효성을 검사하지 마십시오. 표준은 너무 복잡합니다. [여기] (http://ex-parrot.com/~pdw/Mail-RFC822-Address.html)는 정규 표현식이 얼마나 필요한지 (예 : * 전체 * 표준을 충족시키지 못하는) 예제입니다. 어떤 상황에서 이것을하고 있습니까? 어떤 종류의 모듈을 사용하는 것이 좋습니다. 제대로 작동하는 모듈이 많기 때문입니다. – Biffen

+0

나는 사람 레코드를 저장하는 동안 그것을 사용하고있다. 사용자가 유효하지 않은 전자 메일 주소를 입력하면 유효성 검사 오류가 발생하고이 컨트롤의 유효성을 검사하는 동안이 정규식을 사용하고있다. – user3467905

+0

그건별로 대답이 아니 었습니다. 이메일 주소의 유효성을 확인하려고하는 것으로 알고 있습니다. 나는 정규 표현식이 그 일에 아주 좋은 도구가 아니라는 것을 말하고있다. 당신을 위해 그것을하는 대부분의 프로그래밍 언어를위한 모듈이 있습니다, 나는 그 중 하나를 사용하는 것이 좋습니다. – Biffen

답변

0

일부 API는 전체 문자열에서 일치시킬 수있는 기능을 가지고 있습니다. 다른 API는 문자열의 어디에서나 항상 검색합니다.

후자의 경우 부분 문자열, 특히 [email protected]이 패턴과 일치하기 때문에 오류가 발생하지 않습니다.

이 문제를 해결하려면 사용중인 API가 전체 문자열과 일치하는 함수인지 확인하거나 패턴 끝에 ^을 추가하고 $을 추가하여 시작 및 종료를 나타낼 수 있습니다. 문자열/줄의 끝.

^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$ 
+0

Dukeling에게 감사드립니다 ... 공백 문제를 해결하려고 시도했지만 또 다른 문제가 발생했습니다. [email protected]와 같은 단일 문자 도메인 이메일 주소는 실패합니다. – user3467905