如何在C#/ .NET 2.0中找出字符串是否包含非字母数字字符?

cha*_*r m 17 c# regex string

允许的字符是(至少)AZ,az,0-9,ö,Ö,ä,ä,å,Å和德语,拉脱维亚语,爱沙尼亚语(如果有的话)特殊字符?有现成的方法还是我必须制作黑名单(非允许的字符)和正则表达式IsMatch?如果没有现成的如何使用黑名单?

Guf*_*ffa 31

我不知道所有这些语言中的特殊字符是如何分类的,但您可以检查该Char.IsLetterOrDigit方法是否符合您的要求.它至少适用于我测试过的数字和字母:

string test = "Aasdf345ÅÄÖåäöéÉóÓüÜïÏôÔ";
if (test.All(Char.IsLetterOrDigit)) { ... }
Run Code Online (Sandbox Code Playgroud)

Char.IsLetterOrDigit返回true为Unicode中归类为UppercaseLetter,LowercaseLetter,TitlecaseLetter,ModifierLetter,OtherLetter,或DecimalDigitNumber字符.


Fly*_*179 7

调查char.IsLetterOrDigit(char).

例如:

myString.All(c => char.IsLetterOrDigit(c));
Run Code Online (Sandbox Code Playgroud)