正则表达式数据注释验证不起作用

时间:2017-07-17 06:10:24

标签: regex asp.net-mvc data-annotations

我正在尝试在我的模型中使用“RegularExpression”DataAnnotation validaiton。我的问题是我为包含验证的字段提供的有效输入,正则表达式不匹配而且失败。 我尝试在一个独立的控制台应用程序中使用正则表达式测试相同的有效输入,我发现它可以通过。

我的观点是,当正则表达式在数据注释中用作验证时,它会将所有输入视为错误输入。我在这里缺少什么?

我的正则表达式用于检查逗号分隔的电子邮件ID。这是我的模特:

 public partial class BuildModel 
{
    public Int64 ConfigID { get; set; }

    [Required(ErrorMessage = "Please select a stream!")]
    public String Name{ get; set; }



    [RegularExpression(@"^(([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)(\s*(;|,)\s*|\s*$))", ErrorMessage = "Please enter valid email IDs separated by commas")]
    public string EmailIDs { get; set; }

   public bool IsActive { get; set; }
}

注意:“必需”数据注释验证工作正常。它只是正则表达式,不起作用!

2 个答案:

答案 0 :(得分:1)

据我了解,你的正则表达式中存在问题。

要验证以逗号分隔的电子邮件,您可以使用此正则表达式:

^( *[\w+-.%]+@[\w-.]+\.[A-Za-z]{2,4}( *, *)? *)+$

Check in in here

答案 1 :(得分:0)

您的页面中必须包含 jquery.validate.min.js jquery.validate.unobtrusive.min.js ,而不需要这些库注释将无效。< / p>