C#学习教程:RegularExpressionValidator不在空白条目上触发分享


RegularExpressionValidator不在空白条目上触发

我想validation只包含数字的字符串。 简单validation? 我添加了RegularExpressionValidator,ValidationExpression =“/ d +”。

看起来没问题 – 但只输入空间时没有任何validation! 甚至许多空间都经过validation。 我不需要这是强制性的。

我可以修剪服务器,但不能正规表达做任何事情!

这是设计的,往往会让很多人失望。 RegularExpressionValidator不强制字段,并允许它为空并接受空格。 d +格式是正确的。 即使使用^ d + $也会导致允许空格的相同问题。 强制它禁止空格的唯一方法是还包括一个RequiredFieldValidator来操作同一个控件。

这是根据RegularExpressionValidator文档 ,其中指出:

如果输入控件为空,则validation成功。 如果关联的输入控件需要一个值,除了RegularExpressionValidator控件之外,还要使用RequiredFieldValidator控件。

代码隐藏中字段的正则表达式检查将按预期工作; 这只是RegularExpressionValidator的一个问题。 所以你可以想象使用CustomValidator代替args.IsValid = Regex.IsMatch(txtInput.Text, @"^d+$") ,如果它包含空格,那么它将返回false。 但是,如果是这样的话,为什么不按照文档使用RequiredFieldValidator并避免编写自定义代码? 另外,CustomValidator表示强制回发(除非您指定具有等效javascript正则表达式的客户端validation脚本)。

你的问题有点难以理解,但如果你问如何写一个只接受数字的正则表达式,我认为你的错误在于使用正斜杠而不是反斜杠。 尝试

"d+"

RegularExpressionValidator是进行正则表达式检查的一个很好的包装器,但它不会对空控件进行validation。 您可以使用CustomValidator,然后在附加到validation器的javascript函数中执行正则表达式检查。

只要将ValidateEmptyText属性设置为true,它就会对空(空白)控件进行ValidateEmptyText

您可以在此处阅读有关MSDN上的CustomValidators的更多信息。

尝试使用Ajax FilteredTextbox,这将不允许空间……. http://www.asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/FilteredTextBox/FilteredTextBox.aspx

尝试使用^ d + $强制数字填充整行。 ^ =行开始$ =行结束

上述就是C#学习教程:RegularExpressionValidator不在空白条目上触发分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—猴子技术宅(www.ssfiction.com)

本文来自网络收集,不代表猴子技术宅立场,如涉及侵权请点击右边联系管理员删除。

如若转载,请注明出处:https://www.ssfiction.com/ckf/959966.html

发表评论

邮箱地址不会被公开。 必填项已用*标注