bool result = input.All(Char.IsLetter);
bool result = input.All(Char.IsLetterOrDigit);
bool result = input.All(c=>Char.IsLetterOrDigit(c) || c=='_');
4
仅限信件:
Regex.IsMatch(theString, @"^[\p{L}]+$");
字母和数字:
Regex.IsMatch(theString, @"^[\p{L}\p{N}]+$");
字母,数字和下划线:
Regex.IsMatch(theString, @"^[\w]+$");
注意,这些模式也匹配国际字符(而不是使用 a-z 构造) .
212
对于那些不愿意使用Regex并且使用.NET 2.0 Framework(AKA no LINQ)的人:
Only Letters:
public static bool IsAllLetters(string s)
{
foreach (char c in s)
{
if (!Char.IsLetter(c))
return false;
}
return true;
}
Only Numbers:
public static bool IsAllDigits(string s)
{
foreach (char c in s)
{
if (!Char.IsDigit(c))
return false;
}
return true;
}
Only Numbers Or Letters:
public static bool IsAllLettersOrDigits(string s)
{
foreach (char c in s)
{
if (!Char.IsLetterOrDigit(c))
return false;
}
return true;
}
Only Numbers Or Letters Or Underscores:
public static bool IsAllLettersOrDigitsOrUnderscores(string s)
{
foreach (char c in s)
{
if (!Char.IsLetterOrDigit(c) && c != '_')
return false;
}
return true;
}
8
我认为使用正则表达式是一个很好的例子:
public bool IsAlpha(string input)
{
return Regex.IsMatch(input, "^[a-zA-Z]+$");
}
public bool IsAlphaNumeric(string input)
{
return Regex.IsMatch(input, "^[a-zA-Z0-9]+$");
}
public bool IsAlphaNumericWithUnderscore(string input)
{
return Regex.IsMatch(input, "^[a-zA-Z0-9_]+$");
}
internal static bool CheckAllowedChars(char uc)
{
switch (uc)
{
case '-':
case '.':
case 'A':
case 'B':
case 'C':
case 'D':
case 'E':
case 'F':
case 'G':
case 'H':
case 'I':
case 'J':
case 'K':
case 'L':
case 'M':
case 'N':
case 'O':
case 'P':
case 'Q':
case 'R':
case 'S':
case 'T':
case 'U':
case 'V':
case 'W':
case 'X':
case 'Y':
case 'Z':
case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':
return true;
default:
return false;
}
}
用法是这样的:
if( logicalId.All(c => CheckAllowedChars(c)))
{ // Do your stuff here.. }
9 回答
只有字母:
只有字母和数字:
只有字母,数字和下划线:
仅限信件:
字母和数字:
字母,数字和下划线:
注意,这些模式也匹配国际字符(而不是使用
a-z
构造) .对于那些不愿意使用Regex并且使用.NET 2.0 Framework(AKA no LINQ)的人:
Only Letters:
Only Numbers:
Only Numbers Or Letters:
Only Numbers Or Letters Or Underscores:
我认为使用正则表达式是一个很好的例子:
你可以循环使用字符串的字符并使用字符串方法IsLetter进行检查,但你也可以使用字符串方法IndexOfAny来搜索其他不应该在字符串中的字符 .
迭代字符串字符并使用名为'IsLetter'和'IsDigit'的'Char'函数 .
如果你需要更具体的东西 - 使用Regex类 .
如果你是一个新手,那么你可以从我的代码中获取参考..我所做的就是检查,以便我只能获得字母和空格!您可以在第二个if语句之后重复for循环以再次验证字符串
最近,我在一个函数中进行了性能改进,该函数在该页面的帮助下检查字符串中的字母 .
我发现使用正则表达式的解决方案比使用Char.IsLetterOrDigit检查的解决方案慢30倍 .
我们不确定那些字母或数字是否包含,我们只需要拉丁字符,因此基于Char.IsLetterOrDigit函数的反编译版本实现了我们的功能 .
这是我们的解决方案:
用法是这样的: