正则表达式数据注释验证不起作用
Regex data annotation validation not working
我正在尝试在我的模型中使用 "RegularExpression" DataAnnotation 验证。我的问题是即使对于我为包含验证的字段提供的有效输入,正则表达式也不匹配并且失败。
我尝试在独立控制台应用程序中使用正则表达式测试相同的有效输入,我发现它通过了。
我的观点是,当在数据注释中使用正则表达式作为验证时,它会将所有输入视为错误输入。我在这里错过了什么?
我的正则表达式用于检查以逗号分隔的电子邮件 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; }
}
注意:"Required" 数据注释验证工作正常。这只是正则表达式,那行不通!
你必须在你的页面中 jquery.validate.min.js 和 jquery.validate.unobtrusive.min.js 没有这些库需要的注释将不起作用.
据我了解,您的正则表达式存在问题。
要验证以逗号分隔的电子邮件,您可以使用此正则表达式:
^( *[\w+-.%]+@[\w-.]+\.[A-Za-z]{2,4}( *, *)? *)+$
我正在尝试在我的模型中使用 "RegularExpression" DataAnnotation 验证。我的问题是即使对于我为包含验证的字段提供的有效输入,正则表达式也不匹配并且失败。 我尝试在独立控制台应用程序中使用正则表达式测试相同的有效输入,我发现它通过了。
我的观点是,当在数据注释中使用正则表达式作为验证时,它会将所有输入视为错误输入。我在这里错过了什么?
我的正则表达式用于检查以逗号分隔的电子邮件 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; }
}
注意:"Required" 数据注释验证工作正常。这只是正则表达式,那行不通!
你必须在你的页面中 jquery.validate.min.js 和 jquery.validate.unobtrusive.min.js 没有这些库需要的注释将不起作用.
据我了解,您的正则表达式存在问题。
要验证以逗号分隔的电子邮件,您可以使用此正则表达式:
^( *[\w+-.%]+@[\w-.]+\.[A-Za-z]{2,4}( *, *)? *)+$