使用Or语句

时间:2017-06-22 20:05:21

标签: c# regex validation webforms

我需要在字段中添加一些验证,允许用户输入数字0的单个实例,或者只允许输入数字的10到11位电话号码。

我使用在线测试仪提出以下正则表达式,这似乎有效:

  

^ 0 {1} $ | ^ \ d {10,11} $

但是当我在我的代码中使用它时:

foo= new RegularExpressionValidator()
{
    ControlToValidate = controlID,
    ValidationExpression = @"^0{1}$|^\d{10,11}$",
    ErrorMessage = "Invalid input.",
    Display = ValidatorDisplay.Dynamic
};

验证永远不会触发。以前它只是检查以确保它只是10到11位数的电话号码,并且它工作正常,但添加该部分也允许数字0的单个实例导致它永远不会触发。

那么如何处理呢?

编辑:所以我只做了一些额外的测试。它实际上似乎工作,但如果我离开现场完全空白它不会发射。现在,我更加困惑......

1 个答案:

答案 0 :(得分:1)

答案在这里,基本上RegularExpressionValidator仅测试非空字段,例如它不会使该领域成为必需。您必须添加RequiredFieldValidator

https://stackoverflow.com/a/1085549/2557128