我有以下正则表达式来验证密码是否包含至少一个大写字母、至少一个小写字母和至少一个数字。
Regex rxLowercase = new Regex( @"\p{Ll}" ); // Unicode: All lowercase letters
Regex rxUppercase = new Regex( @"\p{Lu}" ); // Unicode: All uppercase letters
Regex rxDigits = new Regex( @"\p{Nd}" ); // Unicode: All decimal digits
我想把一个属性放到一个特定的属性上,比如
[RegularExpression( /* something here which combines above expressions */ )]
[StringLength( 1024, MinimumLength = 8 )]
public string NewPassword
{
get;
set;
}
如何实现?
请您参考如下方法:
由于您的正则表达式都是从字符串初始化的,只需让 RegularExpression 属性的构造函数接受一个字符串数组即可。
我建议将 NewPassword 更改为一个方法(你永远不应该实现密码,这样你就可以获取值、散列它们并比较散列以找出密码是否匹配)。
然后要从方法中获取属性,请使用类似的东西:
var attribute = (RegularExpression)typeof(YourClass).GetMethod("NewPassword")
.GetCustomAttributes(typeof(RegularExpression), false).First();
