chatme.ai
Search
K
Comment on page

Проверка условий в слотах 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