2013-07-25 74 views
0

我有以下代碼:正則表達式驗證不工作模式

public class Register 
{ 
[RegularExpression(@"^\[email protected][a-zA-Z_]+?\.[a-zA-Z]{2,3}$", ErrorMessage = "eMail is not in proper format")] 
[Required(ErrorMessageResourceName="Name Required"), ErrorMessageResourceType = typeof(ErrorMessages))] 
public string Email{ get; set; } 
} 

電子郵件,我嘗試:[email protected]是有效的,但它無法驗證。

需要的是正在工作,但正則表達式失敗。即使我輸入了有效的電子郵件地址,它仍然會說電子郵件格式不正確。

我在這裏錯過了什麼?提前致謝!

編輯

此正則表達式驗證是通過使用Resources.resx工作在我的其他MVC應用程序。所以我認爲這裏有什麼問題是我在模型類中聲明的。

+0

提供一些示例輸入。你的正則表達式將通過[email protected],但失敗[email protected]。 –

+0

你的正則表達式將失敗「[email protected]」 –

回答

0

這是解決。我不小心把錯誤的正則表達式在我的代碼:

"^\[email protected][a-zA-Z_]+?\.[a-zA-Z]{2,3}$ 

代替:

@"^\[email protected][a-zA-Z_]+?\.[a-zA-Z]{2,3}$ 

現在,我將專注於做最好的電子郵件正則表達式。謝謝!

+0

你將不會接受'abc.xyz @ some.thing.gh' – Satpal

+0

正如上面所說,我將編輯創建一個新的正則表達式來傳遞所有有效的電郵。謝謝你提醒我! – Gerald

+0

@Gerald:這可能是相關的 - http://www.ex-parrot.com/pdw/Mail-RFC822-Address.html –

0
 Regex regx = new Regex(@"^(?!\.)(""([^""\r\\]|\\[""\r\\])*""|" 
     + @"([-a-z0-9!#$%&'*+/=?^_`{|}~]|(?<!\.)\.)*)(?<!\.)" 
     + @"@[a-z0-9][\w\.-]*[a-z0-9]\.[a-z][a-z\.]*[a-z]$"); 

/*聲明公開和驗證您的郵件文本框中*/