C# 检查字符串输入的内容

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

如何检查输入是否为特定类型的字符串。因此,没有数字,没有“/”,…

不完全清楚您想要什么,但您可能可以使用正则表达式来实现。例如,要检查字符串是否只包含a-z或a-z中的字母,可以执行以下操作:

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);
}