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

zhekmans

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

Sergodjan

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

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

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

volody00

Client
Регистрация
06.09.2016
Сообщения
792
Благодарностей
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 021
Благодарностей
1 383
Баллы
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
Сообщения
19 440
Благодарностей
8 672
Баллы
113
  • Спасибо
Реакции: Alexmd

doc

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

Yuriy Zymlex

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

udder

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

Rimen

Client
Регистрация
28.10.2019
Сообщения
405
Благодарностей
235
Баллы
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
Сообщения
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
Сообщения
405
Благодарностей
235
Баллы
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)