2011-03-21 3 views
2

나는 asp.net 페이지에서 입력의 유효성을 검사하고있어 유효성을 검사하지만 문제는이 hasangü[email protected]şşıı.com 같은 전자 메일의 유효성을 확인한다인터넷 전자 메일 확인 식은 모든

내 코드는 다음과 같습니다

if (Regex.IsMatch(email, @"\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*")) 
{ valid } 
else { invalid } 

편집 : 터키어 문자를 포함하여 전자 메일 주소의 유효성을 검사하지만 지금은 사용자가 대부분 실수로 터키어 문자를 입력하기 때문에 사용자는 터키어 문자 입력 메일에 수 없도록하려면 특히 전에 question를 작성했습니다 및 이 주소로 메일을 보낼 수 없습니다.

+0

이유는 정확히 문제가 있다는 것입니다? – sth

+0

해당 주소의 유효성을 검사해야합니다. 그것은 완벽하게 합법적입니다. –

+0

그러나 이전에 유효성을 검사하지 않았습니다. 지금 그것이 유효하다는 것이 이상합니다. –

답변

4

왜 그냥 이메일 확인을 위해 System.Net.Mail.MailAddress 클래스에서 빌드를-사용하지 않는?

bool isValidEmail = false; 
try 
{ 
    var email = new MailAddress("hasangü[email protected]şşıı.com"); 
    isValidEmail = true; 
{ 
catch (FormatException x) 
{ 
    // gets "An invalid character was found in the mail header: '.'." 
} 
3

RFC3692 제대로 현재는 제대로 ASCII 문자를 처리 전자 메일 주소를 확인하는 방법에 대한 훌륭한 세부로 들어갑니다. 그러나 이것은 변화로 인한 것이며 따라서 귀하의 유효성 확인은 가능한 한 완화되어야합니다. 정규 표현식 그들에게 선택의 여지를 제공하지 않기 때문에 당신이 떨어져 사람을 전환하지 않을 보장 할

[email protected]+ 

:

나는 것 같은 표현을 사용합니다.

전자 메일이 중요한 경우

당신은 일반적으로 링크가 포함 제공된 주소로 전자 메일을 보내는 통해 이루어 검증과 그것을 다음되어야한다.

관련 문제