我真的很不擅长使用正则表达式,并且正在考虑另一个与此几乎相同的问题,但我无法让它按我需要的方式工作。
我使用的是一个RegularExpressionValidator,它允许最多255个字符的任何字符,或者根本不允许任何字符。我试过了
ValidateExpression="^.{255}$" 但当我检查的文本框为空时,它会抛出一个未处理的异常。
我也试过
ValidateExpression="^.{,255}$"谢谢你罗德尼
发布于 2015-03-21 03:28:38
你试过^.{0,255}$吗?不确定你得到的是什么异常。
编辑:另外,如果正在为.Net正则表达式而苦苦挣扎,Regex Hero tester将是一个很好的帮助。我知道还有其他网站,但如果你问我,这个网站是目前为止最好的。
发布于 2015-03-21 04:37:01
正确的表达式是^.{0,255}$。
只有当恰好有255个字符时,^.{255}$才会匹配,而^.{,255}$将匹配文字字符串"{,255}“。
如果在尝试之后仍然有问题,你能告诉我们例外情况吗?
发布于 2015-03-21 05:48:21
如果它抛出HttpRequestValidationException异常,您可以使用UnvalidatedRequestValues class的成员。
记住“如果输入控件为空,则验证成功”(MSDN。您可以添加RequiredFieldValidator字段以确保用户不会将文本框留空(如果在UpdatePanel控件中使用RequiredFieldValidator控件,请确保验证器控件和与其关联的控件位于同一面板中- MSDN
<asp:textbox id="myTB"
runat="Server">
</asp:textbox>
// ... MAKE SURE YOU DO NOT USE TextMode="Number"!!!
<asp:RequiredFieldValidator
ID="Value1RequiredValidator"
ControlToValidate="myTB"
ErrorMessage="Please enter a number.<br />"
Display="Dynamic"
runat="server"/>至于正则表达式,^.{255}$意味着匹配字符串开始和结束之间的任何字符(换行符除外) 255次。我认为允许^[1-9][0-9]{0,254}$ (对于像'34','104‘之类的值)是有意义的。
https://stackoverflow.com/questions/29174363
复制相似问题