我对正则表达式真的很糟糕,并且正在寻找与此几乎完全相同的另一个问题,但无法让它按照我的需要运行。
我使用的是RegularExpressionValidator,允许任何最多255个字符的字符或根本不允许任何字符。我试过了,
ValidateExpression="^.{255}$"
但是当我正在检查的文本框为空时,它会抛出一个无法解除的异常。
我也试过
ValidateExpression="^.{,255}$"
谢谢 罗德尼
答案 0 :(得分:0)
你试过^.{0,255}$
吗?不知道你会得到什么例外。
编辑:此外,如果与.Net正则表达式斗争,Regex Hero tester是一个很好的帮助。我知道还有其他网站,但如果你问我这个网站是最好的网站。
答案 1 :(得分:0)
正确的表达是^.{0,255}$
。
^.{255}$
只会匹配,如果只有255个字符,而^.{,255}$
将匹配文字字符串“{,255}”。
如果在尝试之后仍然存在问题,您能告诉我们例外吗?
答案 2 :(得分:0)
如果它引发HttpRequestValidationException
例外,您可以使用UnvalidatedRequestValues
class的成员。
请注意“如果输入控件为空,则验证成功”(MSDN)。您可以添加RequiredFieldValidator
字段以确保用户不会将文本框留空(如果您在RequiredFieldValidator
控件中使用UpdatePanel
控件,请确保验证程序控件和与之关联的控件位于同一面板中 - 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'等值)是有意义的。