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

时间:2014-08-12 04:31:40

标签: c# .net

Microsoft将此规则用作其复杂性规则之一:

  

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

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

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

2 个答案:

答案 0 :(得分:8)

规则的字面翻译怎么样:

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

答案 1 :(得分:1)

当您将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