gpt4 book ai didi

c# - RegularExpressionValidator 未触发空白条目

转载 作者:太空狗 更新时间:2023-10-29 20:57:58 28 4
gpt4 key购买 nike

我想验证只包含数字的字符串。容易验证?我添加了 RegularExpressionValidator,ValidationExpression="/d+"。

看起来不错 - 但仅输入空格时没有任何验证!甚至许多空间都可以验证。我不需要这是强制性的。

我可以在服务器上进行修剪,但正则表达式不能做所有事情!

最佳答案

这是设计使然,往往会让很多人望而却步。 RegularExpressionValidator 不会使字段成为必填字段,并允许它为空白并接受空格。\d+ 格式是正确的。即使使用 ^\d+$ 也会导致允许空格的相同问题。强制禁止空白的唯一方法是还包含一个 RequiredFieldValidator 以在同一控件上运行。

这是根据 RegularExpressionValidator documentation ,其中指出:

Validation succeeds if the input control is empty. If a value is required for the associated input control, use a RequiredFieldValidator control in addition to the RegularExpressionValidator control.

代码隐藏中字段的正则表达式检查将按预期工作;这只是 RegularExpressionValidator 的一个问题。因此,您可以想象使用 CustomValidator 来代替并说 args.IsValid = Regex.IsMatch(txtInput.Text, @"^\d+$") 如果它包含空格,则它会返回 false。但如果是这种情况,为什么不根据文档使用 RequiredFieldValidator 并避免编写自定义代码呢?此外,CustomValidator 意味着强制回发(除非您使用等效的 javascript 正则表达式指定客户端验证脚本)。

关于c# - RegularExpressionValidator 未触发空白条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1085464/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com