проверка число или строка в логике IF

braind

Client
Регистрация
10.10.2012
Сообщения
63
Благодарностей
4
Баллы
8
в переменной должны быть строго только числа
как проверить что в переменной число, а не любой другой символ?
можно ли в логике IF использовать регулярки?

в голову приходит только применить отдельно к переменной регулярку \D+
и потом проверять на пустоту. В принципе, вариант.
Другие есть варианты?
 

evgen_po

Client
Регистрация
27.08.2013
Сообщения
832
Благодарностей
476
Баллы
63
в логике IF регулярки не используются
Если Вам нужно проверить число в переменной или нет, то, предварительно нужно сделать так:
Засовываете вашу переменную в экшен обработка текста -> Regex - сама регулярка \D - это значит любой не цифровой символ.
Потом проверяете уже логикой - нашло ли какое-то совпадение. Если нашло, значит в вашей переменной есть что-то, но не число!
 

runlike

Client
Регистрация
22.09.2015
Сообщения
175
Благодарностей
50
Баллы
28
Если именно логикой иф, можно вбить строчку
переменная!=любое число

Если в переменной число, пойдет по зеленой, если есть другие символы - по красной
 
  • Спасибо
Реакции: SocialShop и evgen_po

braind

Client
Регистрация
10.10.2012
Сообщения
63
Благодарностей
4
Баллы
8
Если именно логикой иф, можно вбить строчку
переменная!=любое число

Если в переменной число, пойдет по зеленой, если есть другие символы - по красной
отличный вариант, спасибо!
 

SocialShop

Client
Регистрация
11.08.2015
Сообщения
124
Благодарностей
10
Баллы
18
Если именно логикой иф, можно вбить строчку
переменная!=любое число

Если в переменной число, пойдет по зеленой, если есть другие символы - по красной

Спасибо! Тоже очень помогли!
 

ax1

Новичок
Регистрация
06.07.2017
Сообщения
13
Благодарностей
5
Баллы
3
Можешь попробьовать ещё и такой вариант:
var str = project.Variables["переменная"].Value;
if ( str.Contains("a") ) return "false";
if ( str.Contains("b") ) return "false";
if ( str.Contains("c") ) return "false";
if ( str.Contains("d") ) return "false";
и тд
 

SocialShop

Client
Регистрация
11.08.2015
Сообщения
124
Благодарностей
10
Баллы
18
Можешь попробьовать ещё и такой вариант:
var str = project.Variables["переменная"].Value;
if ( str.Contains("a") ) return "false";
if ( str.Contains("b") ) return "false";
if ( str.Contains("c") ) return "false";
if ( str.Contains("d") ) return "false";
и тд

можно, но долго все буквы перечислять, проще сделать так: {-переменная-}!=1234567890
 

Dobriyk0t

Client
Регистрация
28.12.2016
Сообщения
26
Благодарностей
8
Баллы
3
Используйте c# сниппет:
return Convert.ToInt32(project.Variables["название переменной"].Value).GetTypeCode();
если успех - число(ToInt32 можно заменить на ToDouble если число дробное)
если нет - строка
 

Dobriyk0t

Client
Регистрация
28.12.2016
Сообщения
26
Благодарностей
8
Баллы
3
Используйте c# сниппет:
return Convert.ToInt32(project.Variables["название переменной"].Value).GetTypeCode();
если успех - число(ToInt32 можно заменить на ToDouble если число дробное)
если нет - строка
В прожектмейкере норм работает, а в постере ошибку выдает весь шаблон.
Так лучше будет работать:

try
{
return Convert.ToInt32(project.Variables["название переменной"].Value).GetTypeCode();
}
catch(Exception ex)
{
return project.Variables["название переменной"].Value.GetTypeCode();
}


Дальше на выходе проверку, если Int32 то выполнение одних условий, если String других
 

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