Как на C# сделать проверку что в переменной содержатся только цифры?

  • Автор темы Автор темы zhekmans
  • Дата начала Дата начала

zhekmans

Client
Регистрация
31.05.2019
Сообщения
211
Реакции
30
Баллы
28
Как на C# сделать проверку что в переменной содержатся только цифры? Нужно чтоб если содержатся только цифры то выход по зеленой, если содержится что то ещё кроме цифр то выход по красной.
 
Как на C# сделать проверку что в переменной содержатся только цифры? Нужно чтоб если содержатся только цифры то выход по зеленой, если содержится что то ещё кроме цифр то выход по красной.
C#:
Развернуть Свернуть Копировать
// Текст для обработки
string text = project.ExecuteMacro("123");
var errorIfEmpty = true;
var regexGroups = Macros.TextProcessing.Regex(text, @"\d", "0");
if (regexGroups.Count == 0)
{
    if (errorIfEmpty) throw new Exception();
}
else
{
    project.Variables["res"].Value = regexGroups[0].FirstOrDefault();
}
 
  • Спасибо
Реакции: zhekmans и nicanil
Я бы сделал так - в экшен C# код:
C#:
Развернуть Свернуть Копировать
return Regex.IsMatch(project.Variables["v"].Value, @"^\d+$");
Этот код возвращает True, если в переменной только цифры и False в противном случае.

Результат работы экшена записываем в переменную.
76268

А потом уже с помощью экшена if проверяем, что вернулось в результате работы сниппета.
 
C#:
Развернуть Свернуть Копировать
if(!string.IsNullOrEmpty(Regex.Replace(project.Variables["var"].Value, @"^\d+$", "")))
    throw new Exception();
или так
C#:
Развернуть Свернуть Копировать
int.Parse(project.Variables["var"].Value);
 
Последнее редактирование:
  • Спасибо
Реакции: Alexmd
Тоже была задача проверять переменную с смс номером или кодом ответа, я на форуме нашел такой вариант

C#:
Развернуть Свернуть Копировать
var str = project.Variables["sms_Code"].Value;
if (Regex.Match(str, @"\d").Success)
{
    //Содержит цифру, выход по зеленой
    return true;
}
else
{
    //Не содержит цифру, выход по красной
    throw new Exception();
}
 
Ребят, а подскажите еще такое: допустим нужно не только цифры, но внутри цифры могут быть разделители (точки или запятые)
например 5.0 или 4,1
 
Ребят, а подскажите еще такое: допустим нужно не только цифры, но внутри цифры могут быть разделители (точки или запятые)
например 5.0 или 4,1
Закидываю решение на случай если у кого возникнет подобная задача:
C#:
Развернуть Свернуть Копировать
string parametr_name = System.Text.RegularExpressions.Regex.Replace(project.Variables["parametr_name"].Value, @"\.|,", "");

if(!string.IsNullOrEmpty(Regex.Replace(parametr_name, @"^\d+$", "")))
    throw new Exception();
 
Последнее редактирование:
Закидываю решение на случай если у кого возникнет подобная задача:
C#:
Развернуть Свернуть Копировать
string parametr_name = System.Text.RegularExpressions.Regex.Replace(project.Variables["parametr_name"].Value, @"\.|,", "");

if(!string.IsNullOrEmpty(Regex.Replace(parametr_name, @"^\d+$", "")))
    throw new Exception();
Ещё бы отлов пустого значения и NULL сюда прикрутить, и вообще огонь будет )
 
Ещё бы отлов пустого значения и NULL сюда прикрутить, и вообще огонь будет )

попробуйте так
C#:
Развернуть Свернуть Копировать
string parametr_name = System.Text.RegularExpressions.Regex.Replace(project.Variables["parametr_name"].Value, @".|,", "");

if(parametr_name == null || string.IsNullOrEmpty(Regex.Replace(parametr_name, @"^\d+$", "")))
throw new Exception();
 

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)