Mar*_*ers 14
试试这个:
bool result =
passwordText.Any(c => char.IsLetter(c)) &&
passwordText.Any(c => char.IsDigit(c)) &&
passwordText.Any(c => char.IsSymbol(c));
Run Code Online (Sandbox Code Playgroud)
虽然您可能希望通过"字母字符","数字"和"符号"更具体地说明您的意思,因为这些术语对不同的人意味着不同的东西,并且您不确定这些术语的定义是否符合定义框架使用.
我猜你用字母表示"az"或"A-Z",用数字表示"0-9",用符号表示任何其他可打印的ASCII字符.如果是这样,试试这个:
static bool IsLetter(char c)
{
return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z');
}
static bool IsDigit(char c)
{
return c >= '0' && c <= '9';
}
static bool IsSymbol(char c)
{
return c > 32 && c < 127 && !IsDigit(c) && !IsLetter(c);
}
static bool IsValidPassword(string password)
{
return
password.Any(c => IsLetter(c)) &&
password.Any(c => IsDigit(c)) &&
password.Any(c => IsSymbol(c));
}
Run Code Online (Sandbox Code Playgroud)
如果实际上你的意思是其他东西,那么相应地调整上述方法.
| 归档时间: |
|
| 查看次数: |
24672 次 |
| 最近记录: |