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

zhekmans

Client
Регистрация
31.05.2019
Сообщения
211
Благодарностей
30
Баллы
28
Как на C# сделать проверку что в переменной содержатся только цифры? Нужно чтоб если содержатся только цифры то выход по зеленой, если содержится что то ещё кроме цифр то выход по красной.
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
19 280
Благодарностей
8 610
Баллы
113
Как на 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

nicanil

Client
Регистрация
06.03.2016
Сообщения
2 242
Благодарностей
1 798
Баллы
113
Я бы сделал так - в экшен C# код:
C#:
return Regex.IsMatch(project.Variables["v"].Value, @"^\d+$");
Этот код возвращает True, если в переменной только цифры и False в противном случае.

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

А потом уже с помощью экшена if проверяем, что вернулось в результате работы сниппета.
 

volody00

Client
Регистрация
06.09.2016
Сообщения
793
Благодарностей
810
Баллы
93
C#:
string bla = "ger12345s";
char[] mass = bla.ToCharArray();
foreach(char s in mass) if(!Char.IsDigit(s)) throw new Exception("");
 
  • Спасибо
Реакции: zhekmans и Sergodjan

Alexmd

Client
Регистрация
10.12.2018
Сообщения
1 017
Благодарностей
1 373
Баллы
113
C#:
if(!string.IsNullOrEmpty(Regex.Replace(project.Variables["var"].Value, @"^\d+$", "")))
    throw new Exception();
или так
C#:
int.Parse(project.Variables["var"].Value);
 
Последнее редактирование:

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
19 280
Благодарностей
8 610
Баллы
113
  • Спасибо
Реакции: Alexmd

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 335
Благодарностей
3 271
Баллы
113
  • Спасибо
Реакции: Sergodjan и udder

udder

Client
Регистрация
28.03.2017
Сообщения
591
Благодарностей
117
Баллы
43
Тоже была задача проверять переменную с смс номером или кодом ответа, я на форуме нашел такой вариант

C#:
var str = project.Variables["sms_Code"].Value;
if (Regex.Match(str, @"\d").Success)
{
    //Содержит цифру, выход по зеленой
    return true;
}
else
{
    //Не содержит цифру, выход по красной
    throw new Exception();
}
 

Rimen

Client
Регистрация
28.10.2019
Сообщения
404
Благодарностей
232
Баллы
43
Ребят, а подскажите еще такое: допустим нужно не только цифры, но внутри цифры могут быть разделители (точки или запятые)
например 5.0 или 4,1
 

Rimen

Client
Регистрация
28.10.2019
Сообщения
404
Благодарностей
232
Баллы
43
Ребят, а подскажите еще такое: допустим нужно не только цифры, но внутри цифры могут быть разделители (точки или запятые)
например 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();
 
Последнее редактирование:

vedi108

Client
Регистрация
22.08.2022
Сообщения
15
Благодарностей
3
Баллы
3
Закидываю решение на случай если у кого возникнет подобная задача:
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 сюда прикрутить, и вообще огонь будет )
 

Rimen

Client
Регистрация
28.10.2019
Сообщения
404
Благодарностей
232
Баллы
43
Ещё бы отлов пустого значения и 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();
 

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