我有一个输入字符串,我想验证它包含:
为了澄清,我在代码中有3个不同的案例,每个案例都要求进行不同的验证.在C#中实现这一目标的最简单方法是什么?
Phi*_*ert 279
只有字母:
Regex.IsMatch(input, @"^[a-zA-Z]+$");
Run Code Online (Sandbox Code Playgroud)
只有字母和数字:
Regex.IsMatch(input, @"^[a-zA-Z0-9]+$");
Run Code Online (Sandbox Code Playgroud)
只有字母,数字和下划线:
Regex.IsMatch(input, @"^[a-zA-Z0-9_]+$");
Run Code Online (Sandbox Code Playgroud)
Muh*_*han 229
bool result = input.All(Char.IsLetter);
bool result = input.All(Char.IsLetterOrDigit);
bool result = input.All(c=>Char.IsLetterOrDigit(c) || c=='_');
Run Code Online (Sandbox Code Playgroud)
Fre*_*örk 46
仅限信件:
Regex.IsMatch(theString, @"^[\p{L}]+$");
Run Code Online (Sandbox Code Playgroud)
字母和数字:
Regex.IsMatch(theString, @"^[\p{L}\p{N}]+$");
Run Code Online (Sandbox Code Playgroud)
字母,数字和下划线:
Regex.IsMatch(theString, @"^[\w]+$");
Run Code Online (Sandbox Code Playgroud)
注意,这些模式也匹配国际字符(与使用a-z
构造相反).
ROF*_*IME 19
对于那些不愿意使用Regex并且使用.NET 2.0 Framework(AKA no LINQ)的人:
只有信件:
public static bool IsAllLetters(string s)
{
foreach (char c in s)
{
if (!Char.IsLetter(c))
return false;
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
只有数字:
public static bool IsAllDigits(string s)
{
foreach (char c in s)
{
if (!Char.IsDigit(c))
return false;
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
只有数字或字母:
public static bool IsAllLettersOrDigits(string s)
{
foreach (char c in s)
{
if (!Char.IsLetterOrDigit(c))
return false;
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
只有数字或字母或下划线:
public static bool IsAllLettersOrDigitsOrUnderscores(string s)
{
foreach (char c in s)
{
if (!Char.IsLetterOrDigit(c) && c != '_')
return false;
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
我认为使用正则表达式是一个很好的例子:
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_]+$");
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
219329 次 |
最近记录: |