我想验证仅包含数字的字符串。容易验证?我添加了RegularExpressionValidator和ValidationExpression =“/d +”。
看起来还不错-但仅输入空格时,没有任何验证!甚至很多空间都可以通过验证。我不需要这是强制性的。
我可以在服务器上进行裁剪,但是不能使用正则表达式执行所有操作!
最佳答案
这是设计使然,往往会使很多人流连忘返。 RegularExpressionValidator不会将字段设为必填字段,而是允许其为空白并接受空格。\d +格式正确。即使使用^\d + $也将导致允许空格的相同问题。强制此操作禁止空白的唯一方法是还包括一个RequiredFieldValidator,以对同一控件进行操作。
这是根据RegularExpressionValidator documentation,它指出:
对后面代码中的字段进行正则表达式检查将按预期进行;这只是RegularExpressionValidator的问题。因此,可以想像的是,改用CustomValidator并说args.IsValid = Regex.IsMatch(txtInput.Text, @"^\d+$")
,如果其中包含空格,则它将返回false。但是,如果是这样的话,为什么不只使用每个文档中的RequiredFieldValidator并避免编写自定义代码呢?另外,CustomValidator表示强制回发(除非您使用等效的javascript正则表达式指定客户端验证脚本)。
关于c# - RegularExpressionValidator在空白项上不触发,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1085464/