如何检查文本框中输入的文本是字母还是数字

时间:2016-09-16 10:43:36

标签: c#

我需要检查文本框中的输入文本是数字还是字母,并根据条件执行某些操作。
我有一个要显示的项目列表,用户可以根据排序输入序列号或字母表。

string id = userTextBox1.Text;
if (int.Parse(id) >= 0 && int.Parse(id) <= 9)


{

//action to be performed 


}

如何检查输入的文本是否为字母

的条件

4 个答案:

答案 0 :(得分:2)

这应该有效:

using System.Linq;
//...    

if (id.All(char.IsLetterOrDigit))
{
   //action to be performed 
}

答案 1 :(得分:0)

您可以(并且应该)使用int.TryParse代替int.Parse,否则如果输入无效,您将获得异常。然后这应该工作:

int number;
if(int.TryParse(userTextBox1.Text, out number))
{
    if(number >= 0 && number <= 9)
    {

    }
    else
    {
         // invalid range?
    }
}
else
{
    // not an integer -> alphabet? (or what does it mean)
}

如果“字母”仅表示字母而不表示数字,则可以使用Char.IsLetter

// ...
else if(userTextBox1.Text.All(char.IsLetter))
{
    // alphabet? 
}

答案 2 :(得分:0)

我认为您正在搜索这样的内容:

protected void Validate_AlphanumericOrNumeric(object sender, EventArgs e)
{
    System.Text.RegularExpressions.Regex numeric = new System.Text.RegularExpressions.Regex("^[0-9]+$");
    System.Text.RegularExpressions.Regex alphanemeric = new System.Text.RegularExpressions.Regex("^[a-zA-Z0-9]*$");
    System.Text.RegularExpressions.Regex alphabets = new System.Text.RegularExpressions.Regex("^[A-z]+$");
    string IsAlphaNumericOrNumeric = string.Empty;
    if (numeric.IsMatch(txtText.Text))
    {
        //do anything
    }
    else
    {
        if (alphabets.IsMatch(txtText.Text))
        {
            //do anything
        }
        else if (alphanemeric.IsMatch(txtText.Text))
        {
            //do anything
        }
    }



}

根据你的情况做你的工作

答案 3 :(得分:0)

bool isNumber = id.Select(c => char.IsDigit(c)).Sum(x => x? 0:1) == 0;

一种非常粗糙的方法,但它有效 我们将文本转换为布尔列表,并根据值进行求和。如果它为0,我们只在字符串中有数字。
但这不适用于小数点。