2013-10-21 98 views
3

我試圖使用正則表達式驗證程序在visual studio中驗證格式爲(###)###-####\([0-9]{3}\)[0-9]{3}-[0-9]{4}的電話號碼。我收到(111)111-1111錯誤消息。然而,當我在正則表達式測試網站上執行此操作時,它工作正常。在這裏我還有什麼別的東西在玩嗎?ASP.NET正則表達式驗證程序未按預期驗證

<asp:RegularExpressionValidator 
    ID="PhoneValidator" 
    runat="server" 
    ErrorMessage="Phone Format Must Be (###)###-####" 
    ValidationExpression="/\([0-9]{3}\)[0-9]{3}-[0-9]{4}/g" 
    Display="None" 
    ControlToValidate="PhoneTextBox"> 
</asp:RegularExpressionValidator> 
+1

哪個網站?不同的正則表達式引擎有細微的差異。 – neontapir

+0

我還注意到,在你的驗證器中,你正在使用'/ pattern/g',它似乎被解釋爲模式的一部分而不是正則表達式指令。 – neontapir

回答

5

如果你看一下例子here,你會看到,在此背景下,正則表達式應該開始與/標記結束。試試這個:

ValidationExpression="^\([0-9]{3}\)[0-9]{3}-[0-9]{4}$" 

^$確保你不前或電話號碼後接受額外的字符。

0

我其實是發送日期的空白文本框的頁面上有其他地方的問題。顯然C#將空字段解釋爲01/01/0001,因此使其超出範圍。這扔掉了一切。 @neontapir你是對的;我不應該有這些表達。我原本沒有,但是當我發佈這個時我就這樣做了。謝謝。