2017-02-15 5 views
-3
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, должен быть числовым (только номера). Пожалуйста, помогите мне решить эту проблему.Проверить, что отсканированное входное значение - это только цифры в C#

Я попытался с помощью

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

, но это не помогает мне.

+0

Что ваш вопрос? Вы получаете ошибки? –

+0

Что делать, чтобы проверить только числа –

+0

Не работает ли 'IsNumeric'? Похоже, что вы отсутствуете или имеете слишком много фигурных скобок. Это может быть проблема. –

ответ

1

Вы ищете регулярное выражение?

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

Объяснение: мы должны соответствовать двум условиям

  1. Строка должна быть точно14 символов
  2. Он должен быть действительным (неотрицательное) номер (я сомневаюсь если какой-либо отрицательный штрих-код выходит)

объединения оба условия в один мы можем сказать, что мы ищем строку, которые состоят из 14цифр[0-9] (пожалуйста, обратите внимание, что мы хотим [0-9] не \d, начиная с \d в .Net означает любой цифры, в том числе, скажем, персидские из них)

Тесты:

string vReadData = @"B2MX15235687CC"; 
// vReadData = @"123456789"; 

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

Результат:

InValid 

Если вы раскомментировать строку, вы получите

Valid 
+0

нет сэр, я хочу проверить, является ли входное значение только номерами –

+0

@Santhosh Raja: Извините, не следует за вами; не могли бы вы предоставить некоторые * примеры * (оба * положительные * и * отрицательные *)? Например, является ли «123 456 789,99» принятым вводом? Он содержит числа и имеет длину 14 символов. Правильно ли введен «123456789»? Что относительно '00000000000000' (14 нулей)? Вы принимаете '3.14159265352' число с плавающей запятой? Научная нотация? '1.23456789e123'? Отрицательный '-1234567890123' –

+0

например," B2MX "это не должно удовлетворять условию" 12345 "это значение должно приниматься –