Проверка условий в слотах Transition Rule и Timer

В этой статье описан синтаксис, используемый для проверки условий в слотах Transition Rule и Timer.

Аргументы проверки условий

Операндами (аргументами) проверки условий могут быть числа, строки, переменные, а также логические выражения.

Логическое выражение ー любая операция сравнения, проверка на соответствие регулярному выражению или проверка на наличие переменной в контексте, с использованием указанного ниже синтаксиса, например: {{ @A }} == {{ @B }}.

Логическое выражение (expression) может содержать несколько выражений, объединенных в единое с использованием круглых скобок и операций “И”/”ИЛИ”. Например:

(( == ) && ((phone not in context) || !( ~ /(+7|7|8)?[\s-]?(?[489][0-9]{2})?[\s-]?[0-9]{3}[\s-]?[0-9]{2}[\s-]?[0-9]{2}$/))).

Такое логическое выражение будет верным (true), если:

  • Переменные А и В равны; ЛИБО

  • Переменная phone отсутствует в Контексте Чата; ЛИБО

  • Значение переменной phone не соответствует указанному регулярному выражению.

Операции проверка условий

Операция

Символ

Область применения

Особенности

Пример

Проверка на равенство

==

переменные любого типа

тип не учитывается, проверяя на равенство 4 и ‘4’, получим true

{{ @A }} == {{ @B }} дает true, если переменная А равна переменной B

Проверка на неравенство

!=

переменные любого типа

{{ @A }} != {{ @B }} дает true, если переменная А не равна переменной B

Проверка на меньше

<

только числовые переменные

{{ @A }} < {{ @B }} дает true, если переменная А меньше переменной B

Проверка на больше

>

только числовые переменные

{{ @A }} > {{ @B }} дает true, если переменная А больше переменной B

Проверка на меньше или равно

<=

только числовые переменные

{{ @A }} <= {{ @B }} дает true, если переменная А меньше или равна переменной B

Проверка на больше или равно

>=

только числовые переменные

{{ @A }} >= {{ @B }} дает true, если переменная А меньше или равна переменной B

Проверка на наличие переменной в Контексте Чата

in context

переменные любого типа

переменная указывается без использования специального синтаксиса

A in context дает true, если переменная A есть в Контексте Чата

Проверка на отсутствие переменной в Контексте Чата

not in context

переменные любого типа

переменная указывается без использования специального синтаксиса

A not in context дает true, если переменной A нет в Контексте Чата

Проверка истинности

== True

выражения и булевы переменные

выражение без использования операции == True даёт тот же результат, что и с использованием этой операции

{{ @A }} == True дает true, если булева переменная A истинна. (expression) == True даёт true, если логическое выражение expression истинно.

Проверка ложности

== False или !(expression)

выражения и булевы переменные

{{ @A }} == False, так же как !({{ @A }}), даёт true, если булева переменная A ложна. (expression) == False, так же как !(expression) даёт true, если логическое выражение expression ложно.

Операция “И”

&&

выражения и булевы переменные

Части сложных выражений можно объединять в круглые скобки для обозначения приоритетов операций

{{ @A }} && {{ @B }} дает true, если обе булевы переменные A и B истинны. A && B дает true, если оба логических выражения A и B истинны

Операция “Или”

||

выражения и булевы переменные

Части сложных выражений можно объединять в круглые скобки для обозначения приоритетов операций

{{ @A }} || {{ @B }} дает true, если одна из булевых переменных A и B истинна. A || B дает true, если одно из логических выражений A и B истинно

Проверка на соответствие регулярному выражению

~ /regexp/

строковые и числовые переменные + регулярные выражения

{{ @A }} ~ /regexp/ дает true, если значение переменной A соответствует регулярному выражению regexp

pageРазветвление сценария в зависимости от условий | Слот Transition Rule и под-слот ConditionpageЗапуск сценария по таймеру | Слот Timer

Last updated