2017-05-15 25 views
0

我的RegularExpressValidator1不會觸發。不知道下面丟失了什麼。任何建議?RegularExpressionValidator在ASP.NET中不起作用

<td class="txtbox1"><asp:TextBox ID="txtCard" runat="server" ></asp:TextBox> 
          <asp:RegularExpressionValidator ID="RegularExpressionValidator1" 
           ControlToValidate="txtCard" 
           Forecolor="Red" 
           ValidationExpression="(0*[1-9]\d*)" runat="server" 
           ErrorMessage = "Enter numeric number only."> 
          </asp:RegularExpressionValidator> 
        </td> 

回答

0

仔細看看微軟的頁面How To: Use Regular Expressions to constrain input in ASP.Net

在插入符號(^)和美元符號($)標記中包含表達式可確保表達式包含所需的內容,而不包含其他內容。 A ^匹配輸入字符串開頭的位置,$匹配輸入字符串末尾的位置。如果您省略這些標記,則攻擊者可能會將惡意輸入附加到有效內容的開頭或結尾處,並繞過您的過濾器。

如果向下滾動標題爲普通的正則表達式,它包括正整數正則表達式:

^\d+$ 

他們的模式限制了輸入是數字,而你的似乎只是檢查是否包含任何方式的數字。

作爲示例,考慮這個輸入:

1234 and text! 

使用^\d+$(Source)

0 matches 

使用(0*[1-9]\d*)(Source)

1 match: 1234 

作爲一個無關的說明,我建議修改您的佔位符文本「僅輸入數字。」類似於「輸入號碼」「輸入數值」,因爲「數字號碼」有點多餘!

+0

嗨Santi,謝謝你的意見。我嘗試了^ \ d + $,^ [0-9] $和^ \ d + $選項。這些都沒有激發驗證。我輸入數字或字符並不重要,它會接受任何內容。我認爲我的問題與未啓動驗證有關。 – Brandon168

相關問題