显示正则表达式正确的错误信息
Display regular expression correct error messages
我有一个正则表达式数据注释:
[StringLength(100)]
[Display(Description = "Password")]
[RegularExpression(@^((?=.*[a-z])(?=.*[A-Z])(?=.*\d)).+$)], ErrorMessage = " must include at least one upper case letter,one lower case letter and one numeric digit")]
public string Password { get; set; }
如何根据验证失败的原因显示错误消息?
如果密码是 12345678 则告诉用户他没有包括至少 1 个大写字母和 1 个小写字母。
如果密码是 abcdefgH,则错误消息将是:"must insert at least 1 digit"。
实现此目的的一种方法是创建您自己的正则表达式验证属性。您可以扩展 RegularExpressionAttribute,从而将正则表达式的不同部分分开:
public class UpperAndLowerCaseAttribute : RegularExpressionAttribute
{
public UpperAndLowerCaseAttribute()
: base("**YOUR REGEX HERE**")
{
}
}
然后您可以像这样使用它:
[UpperAndLowerCaseAttribute, ErrorMessage = "ERRORMESSAGE"]
public string Password { get; set; }
我的习惯class:
public class UpperAndLowerCaseAttribute : RegularExpressionAttribute
{
public UpperAndLowerCaseAttribute()
: base("**YOUR REGEX HERE**")
{
}
}
使用方法:
[UpperAndLowerCaseAttribute, ErrorMessage = "ERRORMESSAGE"]
public string Password { get; set; }
将此添加到 global.asax 以获得客户端的识别:
DataAnnotationsModelValidatorProvider.RegisterAdapter(typeof(UpperAndLowerCaseAttribute), typeof(RegularExpressionAttributeAdapter));
我有一个正则表达式数据注释:
[StringLength(100)]
[Display(Description = "Password")]
[RegularExpression(@^((?=.*[a-z])(?=.*[A-Z])(?=.*\d)).+$)], ErrorMessage = " must include at least one upper case letter,one lower case letter and one numeric digit")]
public string Password { get; set; }
如何根据验证失败的原因显示错误消息?
如果密码是 12345678 则告诉用户他没有包括至少 1 个大写字母和 1 个小写字母。
如果密码是 abcdefgH,则错误消息将是:"must insert at least 1 digit"。
实现此目的的一种方法是创建您自己的正则表达式验证属性。您可以扩展 RegularExpressionAttribute,从而将正则表达式的不同部分分开:
public class UpperAndLowerCaseAttribute : RegularExpressionAttribute
{
public UpperAndLowerCaseAttribute()
: base("**YOUR REGEX HERE**")
{
}
}
然后您可以像这样使用它:
[UpperAndLowerCaseAttribute, ErrorMessage = "ERRORMESSAGE"]
public string Password { get; set; }
我的习惯class:
public class UpperAndLowerCaseAttribute : RegularExpressionAttribute
{
public UpperAndLowerCaseAttribute()
: base("**YOUR REGEX HERE**")
{
}
}
使用方法:
[UpperAndLowerCaseAttribute, ErrorMessage = "ERRORMESSAGE"]
public string Password { get; set; }
将此添加到 global.asax 以获得客户端的识别:
DataAnnotationsModelValidatorProvider.RegisterAdapter(typeof(UpperAndLowerCaseAttribute), typeof(RegularExpressionAttributeAdapter));