C# 检查字符串输入的内容
如何检查输入是否为特定类型的字符串。因此,没有数字,没有“/”,…不完全清楚您想要什么,但您可能可以使用正则表达式来实现。例如,要检查字符串是否只包含a-z或a-z中的字母,可以执行以下操作:C# 检查字符串输入的内容,c#,C#,如何检查输入是否为特定类型的字符串。因此,没有数字,没有“/”,…不完全清楚您想要什么,但您可能可以使用正则表达式来实现。例如,要检查字符串是否只包含a-z或a-z中的字母,可以执行以下操作: string s = "dasglakgsklg"; if (Regex.IsMatch(s, "^[a-z]+$", RegexOptions.IgnoreCase)) { Console.WriteLine("Only letters in a-z."); } else { // No
string s = "dasglakgsklg";
if (Regex.IsMatch(s, "^[a-z]+$", RegexOptions.IgnoreCase))
{
Console.WriteLine("Only letters in a-z.");
}
else
{
// Not only letters in a-z.
}
如果还希望允许空格、下划线或其他字符,只需将它们添加到正则表达式的方括号中即可。请注意,某些字符在正则表达式字符类中具有特殊含义,需要用反斜杠转义
您也可以使用\p{L}
而不是[a-z]
来匹配任何被认为是字母的Unicode字符,包括外来字母表中的字母。类似的内容(未测试)可能符合您(模糊)的要求
if (input is string)
{
// test for legal characters?
string pattern = "^[A-Za-z]+$";
if (Regex.IsMatch(input, pattern))
{
// legal string? do something
}
// or
if (input.Any(c => !char.IsLetter(c)))
{
// NOT legal string
}
}
使用System.Linq;
...
bool onlyAlphas=s.All(c=>(c>='a'&&c='a'&&c如果您的意思是“字符串完全是字母”,您可以执行以下操作:
string myString = "RandomStringOfLetters";
bool allLetters = myString.All( c => Char.IsLetter(c) );
这是基于LINQ和方法的。好吧,要检查输入实际上是System.String类型的对象,您只需执行以下操作:
bool IsString(object value)
{
return value is string;
}
要检查字符串是否只包含字母,可以执行以下操作:
bool IsAllAlphabetic(string value)
{
foreach (char c in value)
{
if (!char.IsLetter(c))
return false;
}
return true;
}
如果您想将这些功能结合起来,您可以这样做:
bool IsAlphabeticString(object value)
{
string str = value as string;
return str != null && IsAllAlphabetic(str);
}
你的意思是字母而不是字符串吗?你的意思是“如何检查字符串是否只包含字符?”您是指仅由字母数字字符组成的字符串吗?您能准确定义哪些字符吗?您希望在UI控件或某些后端进程上进行验证吗?如果是UI,您指的是WinForms、WebForms、Silverlight、WPF…?如果您的输入控件是文本框,它将始终是字符串=)这两者都是一个很好的例子,因为标题和问题并不完全匹配。别误会:正则表达式有它的用途。但是对于这样一个简单的单遍算法来说,它的杀伤力太大了。不过,我更喜欢里德的答案。我不知道Char.IsLetter
@luiscentio:我怎么这么残忍?我想luiscentio的意思是你使用了蛮力o解决它。我会写一个for循环。你使用LINQ的解决方案远没有那样的蛮力。嗯。我一直认为蛮力与性能有关。蛮力会将所有有效字符放入数组,并执行双重嵌套循环,以确保该字符串中的所有字符都是这些字符中的一个莱克特斯。由于不知道Char.isleter,我采取的方法对我来说似乎相当优雅。但对每个人来说,都有自己的方法。@ahsteele:实际上是System.Globalization.CharUnicodeInfo来处理非拉丁字符。
bool IsAlphabeticString(object value)
{
string str = value as string;
return str != null && IsAllAlphabetic(str);
}