validation一个string只包含C#中的字母
我有一个inputstring,我想validation它包含:
- 只有字母或
- 只有字母和数字或
- 只有字母,数字或下划线
为了澄清,我在代码中有3个不同的情况,每个都要求不同的validation。 在C#中实现这个最简单的方法是什么?
只有字母:
Regex.IsMatch(input, @"^[a-zA-Z]+$");
只有字母和数字:
Regex.IsMatch(input, @"^[a-zA-Z0-9]+$");
只有字母,数字和下划线:
Regex.IsMatch(input, @"^[a-zA-Z0-9_]+$");
bool result = input.All(Char.IsLetter); bool result = input.All(Char.IsLetterOrDigit); bool result = input.All(c=>Char.IsLetterOrDigit(c) || c=='_');
仅限信件:
Regex.IsMatch(theString, @"^[\p{L}]+$");
字母和数字:
Regex.IsMatch(theString, @"^[\p{L}\p{N}]+$");
字母,数字和下划线:
Regex.IsMatch(theString, @"^[\w]+$");
请注意,这些模式也匹配国际字符(而不是使用az
结构)。
对于那些宁愿不使用正则expression式,并在.NET 2.0 Framework(也就是LINQ)上的人:
只有信件:
public static bool IsAllLetters(string s) { foreach (char c in s) { if (!Char.IsLetter(c)) return false; } return true; }
仅数字:
public static bool IsAllDigits(string s) { foreach (char c in s) { if (!Char.IsDigit(c)) return false; } return true; }
只有数字或字母:
public static bool IsAllLettersOrDigits(string s) { foreach (char c in s) { if (!Char.IsLetterOrDigit(c)) return false; } return true; }
只有数字或字母或下划线:
public static bool IsAllLettersOrDigitsOrUnderscores(string s) { foreach (char c in s) { if (!Char.IsLetterOrDigit(c) && c != '_') return false; } return true; }
我认为使用正则expression式是一个很好的例子:
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_]+$"); }
你可以循环string的string,并使用Char方法IsLetter进行检查,但是你也可以使用String方法IndexOfAny来search其他string,而不是假设在string中。
迭代string字符并使用名为“IsLetter”和“IsDigit”的“Char”函数。
如果你需要更具体的东西 – 使用正则expression式类。
如果你是新手,那么你可以参考我的代码..我所做的就是把一张支票,以便我只能得到字母和空格! 您可以在第二个if语句后重复for循环以再次validationstring
bool check = false; Console.WriteLine("Please Enter the Name"); name=Console.ReadLine(); for (int i = 0; i < name.Length; i++) { if (name[i]>='a' && name[i]<='z' || name[i]==' ') { check = true; } else { check = false; } } if (check==false) { Console.WriteLine("Enter Valid Value"); name = Console.ReadLine(); }