0
我想驗證輸入到文本框中,因此它必須在方括號內包含六個(可選七個)字符。這可以出現在字符串中的任何地方,而不是整個字符串本身。例如有效輸入:Hello World [XX1111]
RegularExpressionValidator對有效輸入返回false
我想出了以下正則表達式:\[.......?\]
然而,這種表達似乎並沒有一個RegularExpressionValidator
內工作:
<asp:TextBox ID="txtTest" runat="server" />
<asp:RegularExpressionValidator ID="rfvTest" runat="server" ControlToValidate="txtTest"
ValidationExpression="\[.......?\]" ErrorMessage="Enter in the right format...">Enter in the right format</asp:RegularExpressionValidator>
<asp:Button ID="btnTest" runat="server" Text="test" />
即使有效輸入,使錯誤顯示,並且Page
的.IsValid
屬性爲false。
有趣的是,下面的C#代碼將導致match
是true
(與Hello [XX1111]
文本)
Regex r = new Regex(rfvTest.ValidationExpression);
bool match = r.IsMatch(txtTest.Text);
所以說:這是怎麼回事這裏。我相信表達式本身是正確的,它使用Regex
類按預期驗證,但RegularExpressionValidator
不會驗證輸入。
如果只輸入與正則表達式(即[[xxxxxxx]')匹配的文本,該怎麼辦? – fge
我想你需要在XML文件中雙重轉義反斜槓。 –
...... [\ [。?。{6,} \]'? –