例如; 我在表中有密碼列。AnyBody 進入系統時必須輸入密碼。我想包含密碼最少一個字符,例如(/、-、?、 、!)。我做了這樣一個代碼;
public UserValidator()
{
RuleFor(p => p.Password).MinimumLength(10);
RuleFor(p => p.Password).Must(MustBeCharacter);
}
private bool MustBeCharacter(string arg)
{
return arg.Contains("." "," "?" "!" "*" "-" " ");
}
我有一個問題。系統想要所有這些 ("." "," "?" "!" "*" "-" " ")。但我想要至少一個。我該怎么做這個規則。太感謝了
uj5u.com熱心網友回復:
在您當前的方法中,您將所有特殊字符連接成一個字串并應用
Contains()它。這就是原因,系統希望所有特殊字符都應該是您的arg字串的一部分。您應該在陣列或串列中定義所有特殊字符,然后用于
.Any()檢查至少一輛特殊汽車應該出現在字串arg中,private bool MustBeCharacter(string arg) { var specialChars = ".,?!*- ".ToCharArray(); return specialChars.Any(x => arg.Contains(x)); }
在線嘗試:.Net Fiddle
uj5u.com熱心網友回復:
系統想要所有這些,因為您正在尋找整個字串而不是一個字符。
你首先需要陣列
private string[] arr = [".",",","?","!","*","-"," "];
private bool MustBeCharacter(string arg)
{
return arr.Any(s => args.Contains(s));
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/435305.html
標籤:C# asp.net-mvc 验证 .net-core
上一篇:Python邏輯回歸優勢比0或1
