TextBox控件的要求是接受以下爲有效輸入:爲什麼訂單在這個正式交易中重要?
- 數字序列。
- 字符串'房間數'。
- 根本沒有值(空白)。根本不指定值應允許RegularExpressionValidator傳遞。
繼正則表達式得到需要的結果(成功驗證了3種類型的輸入):
"Number of rooms|[0-9]*"
但是,我不能拿出一個解釋,當一個同事問,爲什麼下面無法驗證指定字符串「客房數量」時(要求#2):
"[0-9]*|Number of rooms"
,爲什麼的交替事項在這種情況下,順序將是非常有見地的的確是一個解釋。
UPDATE:
第二個正則表達式匹配成功目標字符串「客房數量」中的控制檯應用程序如圖所示here。但是,當輸入爲「房間數量」時,在aspx標記中使用相同的表達式不匹配。以下是相關的aspx標記:
<asp:TextBox runat="server" ID="textbox1" >
</asp:TextBox>
<asp:RegularExpressionValidator ID="RegularExpressionValidator1"
EnableClientScript="false" runat="server" ControlToValidate="textbox1"
ValidationExpression="[0-9]*|Number of rooms"
ErrorMessage="RegularExpressionValidator"></asp:RegularExpressionValidator>
<asp:Button ID="Button1" runat="server" Text="Button" />
對於數字序列,您應該使用'\ d +'或'[0-9] +',而不是'[0-9] *',因爲這意味着任何**數字(包括**沒有**)。 – Oded 2012-04-20 15:08:15
在一種情況下,您有「房間數量」,而在另一個「行數」中。這是一個錯字嗎? – 2012-04-20 15:09:25
@Oded:但它不會匹配空字符串按照第3項。 – 2012-04-20 15:10:24