2013-08-16 3 views
2

RegEx "^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+[.])*(\.[a-zA-Z]{2,17})$"을 사용하여 전자 메일의 유효성을 검사하지만 Microsoft 표준에 따라 유효성을 검증하고자합니다. 그래서 표준에 따라 잘 작동하는 모든 일에전자 메일 유효성 검사에 IP 주소 추가 RegEx

http://msdn.microsoft.com/en-us/library/01escwtf(v=vs.100).aspx

을 따라야하지만 여전히 나는

유효로 문제를 직면하고있다 : js#[email protected] 유효한 : j_9의 @의 [ 129.126.118.1]

위의 메일 ID가 여전히 유효하지 않은 것으로 반환됩니다. 그 페이지에서 사용 된 정규 표현식을 사용해 보았습니다.

^(?("")(""[^""]+?""@)|(([0-9a-z]((\.(?!\.))|[-!#\$%&'\*\+/=\?\^`\{\}\|~\w])*)(?<=[0-9a-z])@))(?(\[)(\[(\d{1,3}\.){3}\d{1,3}\])|(([0-9a-z][-\w]*[0-9a-z]*\.)+[a-z0-9]{2,17}))$ 

그러나 서버 페이지에서 오류가 발생합니다. 유효성 검사 식 안에 식을 붙여도 문자를 받아 들일 수는 없습니다.

참고 : ASP.Net 검사기를 사용하여 이메일의 유효성을 검사하고 있습니다.

+0

는 정규식 또한, 그것은 모든 작업을 얻을 수없는 시도 티 그는 이메일 : http://regexr.com?35vs5 – jerone

+0

네가 맞다. "^ [_ a-zA-Z0-9 -] + (\. [_ a-zA-Z0-9 -] +) * @ [a-zA-Z0-9-] + (\. [a-zA-Z0-9-] + [.]) * (\. [a-zA-Z] {2,17}) $ " 작동하지만 위의 두 개의 이메일에 대한 언급이 없습니다. – codebot

답변

1

설명

샘플 텍스트에 그 이메일 주소 모두를 일치 시키려면, 나는이 같은 표현식을 재 작성 것이라고 생각 :

[A-Z0-9._%#+-][email protected](?:[A-Z0-9.-]+\.[A-Z]{2,4}|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\])

enter image description here

것은 당신이 찾고 있다면 이를 사용하여 이메일 만 포함 할 수있는 문자열을 확인한 다음 문자열 앵커 ^$의 시작/끝을 추가 할 수 있습니다.

Live Demo

샘플 텍스트

Valid: js#[email protected] Valid: [email protected][129.126.118.1] 

일치

[0][0] = js#[email protected] 
[1][0] = [email protected][129.126.118.1] 
+0

감사합니다 Denomales, 정말 날 도와 줘요. 내가 MS 사이트 http://msdn.microsoft.com/en-us/library/01escwtf에서 전자 메일 형식을 테스트하고 있습니다. v = .1000) .aspx 두 개의 정규 표현식 중 하나를 사용하고 있습니다. [A-Za-z0-9 ._] + @ \ [(?:((25) : 0-5 | 2 [0 -4] [0-9] | [01]? [0-9] [0-9]?) \.) {3} (?: 25 [0-5] | 2 [0-4] [0- 9] [01] [0-9] [0-9]?) \]이고 다른 하나는 [a-zA-Z_0-9 #] + (\. [a-zA-Z0-9-] +). * @ [a-zA-Z0-9-] + (\. [a-zA-Z0-9-] + [.]) * (\. [a-zA-Z] {2,17} * (\. [a-zA-Z] {2,17}). 유효성 검사를 위해 두 번의 if 루프를 사용하면 괜찮습니까? – codebot