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

Check the scanned input value is only numbers in C#

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

但这对我没有帮助。

您是否在寻找正则表达式

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

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

  1. 字符串应该 正好 14 个字符长
  2. 应该是一个有效的(non-negative)数字(我怀疑是否存在负条码)

两个条件组合成一个之后,我们可以说我们正在寻找一个由14组成的字符串digits [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