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

zhekmans

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

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 270
Благодарностей
9 054
Баллы
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 819
Баллы
113
Я бы сделал так - в экшен C# код:
C#:
return Regex.IsMatch(project.Variables["v"].Value, @"^\d+$");
Этот код возвращает True, если в переменной только цифры и False в противном случае.

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

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

volody00

Client
Регистрация
06.09.2016
Сообщения
917
Благодарностей
950
Баллы
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 022
Благодарностей
1 424
Баллы
113
C#:
if(!string.IsNullOrEmpty(Regex.Replace(project.Variables["var"].Value, @"^\d+$", "")))
    throw new Exception();
или так
C#:
int.Parse(project.Variables["var"].Value);
 
Последнее редактирование:

zhekmans

Client
Регистрация
31.05.2019
Сообщения
211
Благодарностей
30
Баллы
28
  • Спасибо
Реакции: Sergodjan

Sergodjan

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

doc

Client
Регистрация
30.03.2012
Сообщения
8 685
Благодарностей
4 641
Баллы
113

Yuriy Zymlex

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

udder

Client
Регистрация
28.03.2017
Сообщения
618
Благодарностей
128
Баллы
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
Сообщения
406
Благодарностей
253
Баллы
63
Ребят, а подскажите еще такое: допустим нужно не только цифры, но внутри цифры могут быть разделители (точки или запятые)
например 5.0 или 4,1
 

Rimen

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

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