我需要检查文本框中的输入文本是数字还是字母,并根据条件执行某些操作。
我有一个要显示的项目列表,用户可以根据排序输入序列号或字母表。
string id = userTextBox1.Text;
if (int.Parse(id) >= 0 && int.Parse(id) <= 9)
{
//action to be performed
}
如何检查输入的文本是否为字母
的条件答案 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,我们只在字符串中有数字。
但这不适用于小数点。