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



我正在尝试在我的模型中使用"正则表达式"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; }
}

注意:"必需"数据注释验证工作正常。这只是正则表达式,这是行不通的!

据我了解,您只是在正则表达式中遇到了问题。

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

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

在这里办理登机手续。

您必须在页面中使用jquery.validate.min.jsjquery.validate.unobtrusive.min.js如果没有这些库所需的注释,您将不起作用。

最新更新