我正在写一个注册页面,因此我必须拥有至少8个字符,但是我想包含一个特殊字符,但是验证没有看到我输入了一个特殊字符。 / p>
const int minLength = 8;
const string pattern = ("[@#$%^&+=!]");
public string Message { get; set; } = $"Password should at least {minLength} characters long and should include a special character {pattern}.";
public bool Check(string value) => !string.IsNullOrEmpty(value) && value.Length >= minLength && value.Contains(pattern);
答案 0 :(得分:1)
不能使用Contains
方法来应用正则表达式。 Contains
在string
内查找字符序列。
您需要执行以下操作:
const int minLength = 8;
const string pattern = ("[@#$%^&+=!]");
Regex regex = new Regex(pattern);
public bool Check(string value) => !string.IsNullOrEmpty(value) &&
value.Length >= minLength && regex.Match(value).Success;
答案 1 :(得分:0)
String.Contains()
进行文字字符串匹配。
要使用正则表达式,请使用Regex
类
Regex rx = new Regex(@"[@#$%^&+=!]",
RegexOptions.Compiled | RegexOptions.IgnoreCase);
// Define a test string.
string text = "The the quick brown fox fox jumps over the lazy dog dog.";
// Find matches.
MatchCollection matches = rx.Matches(text);