2011-06-20 47 views
-3

我正在使用C#和jQuery來驗證輸入到表單中的一堆電子郵件。正則表達式電子郵件驗證問題?

public const string Email = "^([a-zA-Z0-9_\\\\-\\\\.]+)@((\\\\[[0-9]{1,3}\\\\.[0-9]{1,3}\\\\.[0-9]{1,3}\\\\.)|(([a-zA-Z0-9\\\\-]+\\\\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})$";

這是我使用的是什麼,但我似乎得到錯誤的記錄?任何人都可以幫我嗎?

感謝

+2

也許你可以提供一個示例「錯誤的條目」,由您的代碼不正確驗證? – richardtallent

回答

2

它看起來像你雙反斜槓你的反斜槓。這是有幫助的使用@語法字符串聲明,以避免這種混亂:

public const string Email = @"^([a-zA-Z0-9_\\-\\.]+)@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.)|(([a-zA-Z0-9\\-]+\\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})$"; 

你會沒有雙逃逸接近:

public const string Email = @"^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})$"; 

\[匹配@後大概也是一個錯,留下...

public const string Email = @"^([a-zA-Z0-9_\-\.]+)@(([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})$"; 
+0

aha!非常感謝 - 是的,這正是問題所在:)不知道爲什麼我得到了downvoted :( – Tom

0

This page有什麼正則表達式使用匹配的電子郵件地址的大討論,而這些變異體的優點。

0
+0

這並不妨礙test @ test通過,因爲服務器到服務器,這是可以的。 – Scott

+0

明年開始test @ test將是一個合法的電子郵件地址。 http://www.upi.com/Business_News/2011/06/20/ICANN-approves-dot-changes/UPI-29491308583048/ –

0

我用這個。工作很好:)

/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i 
0

試試這個傢伙,

public const string Email= "^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$"; 
0

這是正則表達式,我在我的代碼中使用..所有的方式測試..處理每個場景。

(([ ]*[A-Za-z0-9]([_]{1}[A-Za-z0-9])*([.]{1}[A-Za-z0-9])*([-]{1}[A-Za-z0-9])*)+\\@([A-Za-z0-9_\\-\\.])+\\.([A-Za-z]{2,4}))[ ]*(((;|,|; | ;| ; | , | ,){1}"+"([ ]*[A-Za-z0-9]([_]{1}[A-Za-z0-9])*([.]{1}[A-Za-z0-9])*([-]{1}[A-Za-z0-9])*)+\\@([A-Za-z0-9_\\-\\.])+\\.([A-Za-z]{2,4}[ ]*))*)[ ]* 
+1

tld如'博物館「或」旅行「呢?還有像'jean-françois'這樣的名字? – Toto

相關問題