检查扫描的输入值只是C#中的数字

时间:2017-02-15 10:11:53

标签: c# validation textbox

else if (vReadData.Length==14 && vReadData Is Numeric)
{
    if (txtIPLoad_MHEBarcode1.Text == "")
{
    txtIPLoad_MISBarcode1.Text = vReadData;
    txtIPLoad_MHEBarcode1.Focus();
}
else
{
    txtIPLoad_MISBarcode2.Text = vReadData;
    txtIPLoad_MHEBarcode2.Focus();
}
    mMessage("Scan", "Please scan the MHE Barcode!");
    return;
}

这是我验证文本框的代码。我检查长度应该是14个字符的条件。我还必须检查变量vReadData中的输入必须是数字(仅限数字)。 请帮我解决这个问题。

我尝试过使用

 else if (Int64.TryParse(vReadData, out num))

但这对我没有帮助。

1 个答案:

答案 0 :(得分:1)

您是否正在寻找正则表达式

 else if (Regex.IsMatch(vReadData, @"^[0-9]{14}$")) {
   // vReadData is a string of exactly 14 digits [0..9] 
 }

说明:我们必须匹配两个条件

  1. 字符串应 14个字符
  2. 它应该是有效的(非负)(我怀疑是否有任何负面条形码退出)
  3. 两个条件合并到 one 后,我们可以说我们正在寻找一个由14 数字组成的字符串[0-9](请注意,我们希望[0-9]不是\d,因为.Net中的\d表示任何数字,包括说波斯语

    试验:

    string vReadData = @"B2MX15235687CC";
    // vReadData = @"12345678901234";
    
    if (Regex.IsMatch(vReadData, @"^[0-9]{14}$"))
      Console.Write("Valid");
    else
      Console.Write("InValid"); 
    

    结果:

    InValid
    

    如果你取消注释你将得到的行

    Valid