检查字符串输入的内容

sen*_*ale 5 c#

如何检查输入是否是特定类型的字符串.所以没有数字,没有"/",......

Dan*_*Tao 15

好吧,要检查输入实际上是一个类型的对象System.String,你可以简单地做:

bool IsString(object value)
{
    return value is string;
}
Run Code Online (Sandbox Code Playgroud)

要检查a string只包含字母,您可以执行以下操作:

bool IsAllAlphabetic(string value)
{
    foreach (char c in value)
    {
        if (!char.IsLetter(c))
            return false;
    }

    return true;
}
Run Code Online (Sandbox Code Playgroud)

如果你想组合这些,你可以这样做:

bool IsAlphabeticString(object value)
{
    string str = value as string;
    return str != null && IsAllAlphabetic(str);
}
Run Code Online (Sandbox Code Playgroud)


Ree*_*sey 10

如果你的意思是"字符串完全是字母",你可以这样做:

string myString = "RandomStringOfLetters";
bool allLetters = myString.All( c => Char.IsLetter(c) );
Run Code Online (Sandbox Code Playgroud)

这基于LINQ和Char.IsLetter方法.


Mar*_*ers 6

它并不完全清楚你想要什么,但你可以用正则表达式来做.例如,要检查您的字符串是否仅包含az或AZ中的字母,您可以执行以下操作:

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.
}
Run Code Online (Sandbox Code Playgroud)

如果您还想允许空格,下划线或其他字符,只需将它们添加到正则表达式的方括号中.请注意,某些字符在正则表达式字符类中具有特殊含义,需要使用反斜杠进行转义.

您也可以使用\p{L}而不是[a-z]匹配任何被认为是字母的Unicode字符,包括外国字母表中的字母.