Перейти к основному содержимому

Описание синтаксиса выражений

Для написания условий показа вопросов, условий выполнения действий перед показом и после ответа на вопрос, а также для условий в счетчиках и квотах - используются выражения. Синтаксис выражений прост и интуитивно понятен.

Допустимые операции

  • Операции сравнения =, !=, >, <, >=, <=,
  • логические операции and, or, not,
  • скобки с любой степенью вложенности,
  • ключевые слова:
    • code - код варианта ответа;
    • row - строка в табличных вопросах;
    • valueTxt - текст ответа на вопрос или текст из открытого поля ответа;
    • valueNum - дробное число из ответа на вопрос или из открытого поля ответа;
    • valueInt - целое число из ответа на вопрос или из открытого поля ответа;
    • null - отсутствие ответа.

Примеры выражений по типам вопросов

Ниже собраны распространённые примеры выражений для разных типов вопросов с условиями их выполнения. Вы можете формировать собственные условия: опираясь на приведённые примеры или с нуля, используя описанный синтаксис.

подсказка

Прежде чем применять полученные знания, пожалуйста, дочитайте статью до конца.

Единственный выбор / Выпадающий список: единственный выбор

Q1 = 2 - Выбран ответ с кодом 2.

Q1 != 1 - Выбран любой ответ, кроме ответа с кодом 1.

Q1(code = 1 or code = 3) - Выбран ответ с кодом 1 или с кодом 3.

Q1(code >= 1 and code <= 5) - Выбран ответ с кодом от 1 и до 5 (включая 1 и 5).

Q1(code > 5 and code < 9) - Выбран ответ с кодом от 5 и до 9 (не включая 5 и 9).

Q1(code = 2 or code >= 5) - Выбран ответ с кодом 2 или с кодом больше 5 (включая 5).

Q1(code > 1 and code <= 3) - Выбран ответ с кодом от 1 (не включая) до 3 (включительно).

Q1(code > 1 and code != 3) - Выбран любой ответ с кодом больше 1 и не равным 3.

Q1(code = 2 and valueNum > 18) - Выбран ответ с кодом 2 и в числовом поле ответа введено любое число больше 18 (не включая).

Q1(code > 2 and valueNum > 18) - Выбран любой ответ с кодом больше 2 (не включая 2) и в числовом поле ответа введено любое число больше 18 (не включая).

Q1(code = 2 and valueTxt = "Hello") - Выбран ответ с кодом 2 и в текстовом поле ответа записано "Hello".

Q1(code = 2 and valueTxt != null) - Выбран ответ с кодом 2 и текстовое поле ответа заполнено (введен любой текст).

Q1(valueNum > 18) - В числовое поле любого ответа введено любое число больше 18 (не включая).

Q1(valueTxt = "Hello") - В текстовом поле любого ответа записано "Hello".

Множественный выбор / Выпадающий список: множественный выбор

Q1 = 2 - Выбран ответ с кодом 2.

Q1 != 2 - Выбран любой ответ, помимо ответа с кодом 2 (сам ответ 2 так же может быть выбран при этом). Будьте внимательны при использовании неравенства.

Q1 and not Q1 = 2 - Не выбран ответ с кодом 2.

Q1(code = 2 or code = 3) - Выбран ответ с кодом 2 или 3.

Q1 = 2 and Q1 = 3 - Одновременно выбран ответ с кодом 2 и 3.

Q1 = 3 and not Q1 != 3 - Выбран только ответ с кодом 3.

Q1(code >= 1 and code <= 5) - Выбран ответ с кодом от 1 и до 5 (включая 1 и 5).

Q1(code > 5 and code < 9) - Выбран ответ с кодом от 5 и до 9 (не включая 5 и 9).

Q1(code > 1 and code <= 3) - Выбран ответ с кодом от 1 (не включая) до 3 (включительно).

Q1 > 1 and not Q1 = 99 - Выбран любой ответ с кодом больше 1 и не равным 99.

Q1(code = 2 and valueNum > 18) - Выбран ответ с кодом 2 и в числовом поле ответа введено любое число больше 18 (не включая).

Q1(code = 2 and valueTxt = "Hello") - Выбран ответ с кодом 2 и в текстовом поле ответа записано "Hello".

Q1(code = 2 and valueTxt = null) - Выбран ответ с кодом 2 и в текстовом поле ответа отсутствует текст.

Q1(valueNum > 18) - В числовое поле любого ответа введено любое число больше 18 (не включая).

Q1(valueTxt = "Hello") - В текстовом поле любого ответа записано "Hello".

Таблица: единственный выбор

Q1 = 99 - В любой строке выбран ответ с кодом 99.

not Q1 != 99 - Во всех строках таблицы выбран ответ с кодом 99.

Q1(row = 1 and code = 4) - В строке с кодом 1 выбран ответ с кодом 4.

Q1(row = 1 and code != 2) - В строке с кодом 1 выбран любой ответ, кроме ответа с кодом 2.

Q1(row = 1 and code > 3) - В строке с кодом 1 выбран любой ответ с кодом больше 3.

Q1(row > 2 and code = 1) - В любой строке с кодом больше 2 выбран ответ с кодом 1.

Q1(row >= 3 and code > 4) - В любой строке с кодом 3 и больше выбран любой ответ с кодом больше 4.

Q1( (row = 1 and code = 2) or (row = 3 and code > 5) ) - В строке с кодом 1 выбран ответ с кодом 2 или в строке с кодом 3 выбран любой ответ с кодом больше 5.

Q1((row >= 1 and row <= 5) and code != 99) - В любой строке с кодом от 1 до 5 (включая 1 и 5) выбран любой ответ, кроме кода 99.

Q1(row = 3 and code = null and valueNum = 3) - В числовом поле строки (не ответа) с кодом 3 введено число 3.

Q1(row >= 3 and row <= 5 and code != 99 and valueNum > 18) - В любой строке с кодом от 3 до 5 (включая 3 и 5) выбран любой ответ, кроме кода 99 и в числовом поле ответа введено число больше 18.

Таблица: множественный выбор

Q1 = 99 - В любой строке выбран ответ с кодом 99.

not Q1 != 99 - Во всех строках таблицы выбран ответ с кодом 99.

Q1(row = 1 and code = 4) - В строке с кодом 1 выбран ответ с кодом 4.

not Q1(row = 1 and code = 4) - В строке с кодом 1 не выбран ответ с кодом 4 (вопрос Q1 может быть не отвечен).

Q1 not Q1(row = 1 and code = 4) - В строке с кодом 1 не выбран ответ с кодом 4 (вопрос Q1 отвечен).

Q1(row = 1 and code > 3) - В строке с кодом 1 выбран любой ответ с кодом больше 3.

Q1(row > 2 and code = 1) - В любой строке с кодом больше 2 выбран ответ с кодом 1.

Q1(row >= 3 and code > 4) - В любой строке с кодом 3 и больше выбран любой ответ с кодом больше 4.

Q1(row = 1 and code = 2 or row = 3 and code > 5) - В строке с кодом 1 выбран ответ с кодом 2 или в строке с кодом 3 выбран любой ответ с кодом больше 5.

Q1(row > 1 and row <= 5 and code != 1) - Ни в одной из строк с кодом от 1 (не включая) до 5 (включительно) не выбран ответ с кодом 1.

Q(row = 3 and code = null and valueNum = 3) - В числовом поле строки (не ответа) с кодом 3 введено число 3.

Текстовый / Телефон / Email / Дата и время

Q1(valueTxt = "Hello") - Введен текст "Hello".

Q1(valueTxt = "79991112233") - Введен текст (номер телефона) "79991112233".

Q1(valueTxt = "email@example.com") - Введен e-mail "email@example.com".

Q1(valueTxt = "20.05.2000") - В вопросе используется опция "Дата" и выбрана дата 20.05.2000.

Q1(valueTxt = "09:30") - В вопросе используется опция "Время" и выбрано время 09:30.

Q1(valueTxt = "06.10.2013 19:00") - В вопросе используются опции "Дата" и "Время" и выбрано 06.10.2013 19:00.

Числовой / Рейтинг / Слайдер

Q1(valueNum = 25) - Выбрано/введено число равное 25.

Q1(valueNum != 18) - Выбрано/введено число не равное 18 (любое, кроме 18).

Q1(valueNum > 18) - Выбрано/введено число больше 18.

Q1(valueNum = 18 or valueNum = 19) - Выбрано/введено число 18 или 19.

Q1(valueNum > 18 and valueNum < 25) - Выбранно/введено число больше 18 и меньше 25 (не включая 18 и 25).

Q1(valueNum >= 25 and valueNum <= 35) - Выбранно/введено число от 25 и до 35 (включая 25 и 35).

Q1(valueNum = 2 or valueNum > 5) - Выбранно/введено число 2 или любое число больше 5.

not Q1(valueNum = 1) - В вопросе не вписано число 1 (вопрос может быть не отвечен).

Таблица: текст

Q1(valueТxt = "Hello") - В любой строке введен текст "Hello".

Q1(row = 1 and valueTxt = "Hello") - В строке с кодом 1 введен текст "Hello".

Q1(row > 1 and row <= 3 and valueTxt = "Hello") - В любой из строк с кодом от 1 (не включая) до 3 (включительно) введен текст "Hello".

Q1(row > 2 and valueTxt != null) - В любой строке с кодом больше 2 введен какой-то текст.

Таблица: числа / рейтинг / слайдер

Q1(valueNum >= 18) - В любой строке введено/выбрано число больше "18" (включительно).

Q1(row = 1 and valueNum = 4) - В строке с кодом 1 введено/выбрано число "4".

Q1(row <= 3 and valueNum < 18) - В любой из строк с кодом меньше 3 (включительно) введено/выбрано любое число меньше "18".

Q1(row > 1 and row <= 3 and valueNum > 20) - В любой из строк с кодом от 1 (не включая) до 3 (включительно) введено/выбрано число больше "20".

Q1(row > 3 and valueNum = null) - В любой строке таблицы с кодом больше 3 числовое поле пустое (ничего не введено).

Проверка условий по нескольким вопросам

Q1 = 1 and Q2 = 1 - в вопросе Q1 выбран ответ с кодом 1 и в вопросе Q2 выбран ответ с кодом 1.

Q1 = 1 or Q2 = 1 - в вопросе Q1 выбран ответ с кодом 1 или в вопросе Q2 выбран ответ с кодом 1.

not Q1 = 1 - в вопросе Q1 не выбран ответ с кодом 1 (сам вопрос Q1 может быть не отвечен).

Q1 and not Q1 = 1 - в вопросе Q1 не выбран ответ с кодом 1 (сам вопрос Q1 уже отвечен).

(Q1 = 1) or (Q1 = 2 and Q2 = 2) - в вопросе Q1 выбран ответ с кодом 1 или одновременно выполняется: в Q1 выбран ответ с кодом 2 и в Q2 выбран ответ с кодом 2.

(Q1 = 1) or Q2(code = 1 or code = 2) - в вопросе Q1 выбран ответ с кодом 1 или в вопросе Q2 выбран ответ с кодом 1 или ответ с кодом 2.

(Q1 = 1) and not Q2(code = 1 or code = 2) - в вопросе Q1 выбран ответ с кодом 1 и одновременно в Q2 не выбран ответ с кодом 1 или с кодом 2.

Дополнительная информация по выражениям

Проверка одного из ответов в одном вопросе

Проверить, выбран ли один из ответов в одном вопросе, можно двумя способами:

  1. Q1 = 1 or Q1 = 3 or Q1 = 7
  2. Q1(code = 1 or code = 3 or code = 7)

Второй способ более предпочтителен, так как выполняется быстрее и может избавить от ошибок со скобками в некоторых сложных выражениях.

Сокращённая запись номера вопроса

При написании условий для действий после ответа на вопрос лучше не указывать номер вопроса, если необходимо проверить что-то именно в этом вопросе. Например, вполне можно написать такое выражение: Q = 99
Т.е. если в выражении указано просто Q, то имеется ввиду сам вопрос, к которому это выражение относится. Настоятельно рекомендуется использовать такую сокращенную запись при проверке ответа на сам вопрос.

Условие, которое выполняется всегда

1 = 1, а также any или all
Такое выражение всегда выполняется и удобно использовать, например, в счетчиках, как условие для подсчета всех интервью в проекте.

Условие, которое никогда не выполняется

1 != 1, 2 = 3, 1 > 2 и так далее или просто false
Такое выражение никогда не выполняется и удобно использовать, например, в условии показа вопроса, если он не должен никогда задаваться.

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

Сравнение valueTxt допускается только с точным совпадением текста. Части слов, звёздочки и регулярные выражения не поддерживаются.

То есть условие Q1(valueTxt = "Hello") выполнится, только когда в Q1 вписано слово "Hello" (с заглавной буквы, без пробелов в начале и конце). Если в Q1 вписано "hello" (с маленькой буквы) или "Hello " (с пробелом в конце) - условие не выполнится (будет ложным).