如何确定非大写或小写的字母字符

本文关键字:字符 何确定 | 更新日期: 2023-09-27 18:17:45

Microsoft使用此规则作为其复杂度规则之一:

任何归类为字母字符但不是大写或小写的Unicode字符。这包括来自亚洲语言的Unicode字符。

测试常用规则,如大写,可以像password.Any(char.IsUpper)一样简单。

我可以在c#中使用什么测试来测试非大写或小写的Unicode字母字符?

如何确定非大写或小写的字母字符

规则的直译如何:

password.Any(c => Char.IsLetter(c) &&
                  !Char.IsUpper(c) &&
                  !Char.IsLower(c))

当您将ascii aA转换为unicode时,您将得到aA,因此显然,它们是不相同的。


更新:下面是一个我认为你在问的问题的例子:

var c = 'א';
c.Dump();
char.IsUpper(c).Dump("is upper");    // False
char.IsLower(c).Dump("is lower");    // False
char.IsLetterOrDigit(c).Dump("is letter or digit"); // True
char.IsNumber(c).Dump("is Number");  // False