.Net Core=我想为UserValidator添加个性化规则
.Net Core=I want add personality rules for UserValidator
例如;
我在 table 中有密码列。进入系统时任何人都必须输入密码。我想包含至少一个字符的密码,例如(/,-,?,+,!)。我做了这样一个代码;
public UserValidator()
{
RuleFor(p => p.Password).MinimumLength(10);
RuleFor(p => p.Password).Must(MustBeCharacter);
}
private bool MustBeCharacter(string arg)
{
return arg.Contains("."+","+"?"+"!"+"*"+"-"+"+");
}
我有问题。系统需要所有这些 ("."+","+"?"+"!"+"*"+"-"+"+")。但我至少还想要一个。我该如何执行此规则。
非常感谢
在您当前的方法中,您将所有特殊字符连接成一个字符串并对其应用 Contains()
。这就是原因,系统期望所有特殊字符都应该是您的 arg
字符串的一部分。
您应该在数组或列表中定义所有特殊字符,然后使用 .Any()
检查字符串 arg
,[= 中至少应出现一辆特殊汽车18=]
private bool MustBeCharacter(string arg)
{
var specialChars = ".,?!*-+".ToCharArray();
return specialChars.Any(x => arg.Contains(x));
}
在线试用:.Net Fiddle
系统需要所有这些,因为您正在寻找整个字符串而不是一个字符。
你首先需要数组
private string[] arr = [".",",","?","!","*","-","+"];
private bool MustBeCharacter(string arg)
{
return arr.Any(s => args.Contains(s));
}
例如; 我在 table 中有密码列。进入系统时任何人都必须输入密码。我想包含至少一个字符的密码,例如(/,-,?,+,!)。我做了这样一个代码;
public UserValidator()
{
RuleFor(p => p.Password).MinimumLength(10);
RuleFor(p => p.Password).Must(MustBeCharacter);
}
private bool MustBeCharacter(string arg)
{
return arg.Contains("."+","+"?"+"!"+"*"+"-"+"+");
}
我有问题。系统需要所有这些 ("."+","+"?"+"!"+"*"+"-"+"+")。但我至少还想要一个。我该如何执行此规则。 非常感谢
在您当前的方法中,您将所有特殊字符连接成一个字符串并对其应用
Contains()
。这就是原因,系统期望所有特殊字符都应该是您的arg
字符串的一部分。您应该在数组或列表中定义所有特殊字符,然后使用
.Any()
检查字符串arg
,[= 中至少应出现一辆特殊汽车18=]private bool MustBeCharacter(string arg) { var specialChars = ".,?!*-+".ToCharArray(); return specialChars.Any(x => arg.Contains(x)); }
在线试用:.Net Fiddle
系统需要所有这些,因为您正在寻找整个字符串而不是一个字符。
你首先需要数组
private string[] arr = [".",",","?","!","*","-","+"];
private bool MustBeCharacter(string arg)
{
return arr.Any(s => args.Contains(s));
}