Выражения
Выражение — это заданная создателем сценария последовательность арифметических или строковых действий, оперирующая с константами и переменными и функциями от них. Выражение используется для подстановки в качестве аргумента в значение объектов сценария. Значением выражения могут являться строка и число. Для явного указания строки заключайте текст в кавычки. В противном случае, сначала будут вычислены все арифметические комбинации, доступные для расчета. В приведенных примерах 7 и 8 результат будет разный, то есть началом результирующей строки примера 7 будет являться символ «5», а примера 8 – символы «23».
Примеры числовых выражений:
- [переменная_число_1] + 1
- 2 ^ [переменная_число_2] * ( Log10 ( [переменная_число_3] ) + 2 )
- Sin ( Len ( [переменная_строка_1] ) )
Примеры строковых выражений:
- [переменная_строка_1] + [переменная_строка_2]
- Кусок текста + [ переменная_строка_1]
- «Кусок текста» + [переменная_строка_1]
- 2 + 3 + [переменная_строка_1]
- «2» + «3» + [переменная_строка_1]
- SubStr ( [переменная_строка], 1, Length ( [переменная_строка] ) - 1 )
- If ( num([a]) > 5, 'больше', 'меньше')
Для задания выражения служит соответствующая вкладка окна Аргументы. Выражения вычисляются в сценариях и результат вычисления подставляется в качестве аргумента текущего выполняемого объекта (свойства объекта) сценария.
Общие
Операции и подстановочные функции, доступные для использования в составе выражений:
| Операция | Параметры | Тип возвращ. значения | Описание | |
|---|---|---|---|---|
| + | s1 + s2 x1 + x2 s + x x + s | строка число строка строка | Если один из операндов функции является строкой, то возвращаемым значением будет строка, склеенная из двух частей. Если все операнды являются числами, результатом будет число. | |
| - | x1 - x2 | число | Вычитает из числа X1 число X2. | |
| * | x1 * x2 | число | Перемножает числа X1 и X2. | |
| / | x1 / x2 | число | Делит число X1 на число X2. | |
| x1 | x2 | число | Возводит число X1 в степень X2. | |
| ( ) | Выставление приоритета любой арифметической операции. | |||
| % | x1 % x2 | число | Возвращает действительный остаток от деления. | |
| & | x1 & x2 s1 & s2 x & s s & x | число строка строка строка | Соединяет числа или строки (в строковом представлении). Примеры: 2.16 & 3 ⇒ 2.163; «2» & 5 ⇒ «25»; 2 & -3 ⇒ «2-3» | |
| Upper() | Upper(x) | строка | Преобразовывает строку в верхний регистр | |
| Lower() | Lower(x) | строка | Преобразовывает строку в нижний регистр |
Математические
Функции для работы со строковыми и числовыми значениями, доступные для использования в составе выражений:
| Функция | Параметры | Тип возвращ. значения | Описание |
|---|---|---|---|
| Abs (x) | x - число | Число | Абсолютная величина числа X. |
| Ceil (x) | x - число | Число | Округляет число до целого в большую сторону. |
| Floor (x) | x - число | Число | Округляет число до целого в меньшую сторону. |
| Cos (x) | x - число | Число | Косинус угла, определяемого параметром X в радианах. |
| Exp (x) | x - число | Число | Экспонента числа X. |
| Lg (x), Log10 (x) | x - число | Число | Десятичный логарифм числа X. |
| Ln (x) | x - число | Число | Натуральный логарифм числа X. |
| Log (x, y) | x - число y - число | Число | Логарифм числа Y по основанию X. Если в функцию передается один параметр - возвращается его натуральный логарифм. |
| Max (x, y) | x - число y - число | Число | Максимум из двух чисел X и Y. |
| Min (x, y) | x - число y - число | Число | Минимум из двух чисел X и Y. |
| Random (x) | x - число | Число | Случайное целое число из отрезка [0, x-1]. |
| Round (x) | x - число | Число | Ближайшее целое значение числа X. |
| Sin (x) | x - число | Число | Синус угла, определяемого параметром X в радианах. |
| Sqr (x) | x - число | Число | Квадрат числа X. |
| Sqrt (x) | x - число | Число | Квадратный корень числа X. |
| Tan (x) | x - число | Число | Тангенс угла, определяемого параметром X в радианах. |
Строковые
| Функция | Параметры | Тип возвращ. значения | Описание |
|---|---|---|---|
| IndexOf (s1, s2) | s1 - строка, s2 - строка | Число | Ищет подстроку S2 в строке S1 и возвращает номер позиции. Отсчет ведется с 0 символа. В случае, если подстрока не найдена, возвращается -1. |
| Len (s) | s - строка | Число | Длина строки S в символах. |
| NewId () | Строка | Возвращает строковое представление вновь сгенеренного GUID-идентификатора. Например 12A5A37E-B97A-45F7-86F1-87C88DA66CBA | |
| RegexReplace (s, s1, s2) | s, s1, s2 - строка | Строка | Возвращает строку, образованную из строки S путем замены всех встречающихся подстрок S1 на основе регулярных выражений на подстроки S2. Пример: RegexReplace('Имеет место быть', '[\S]+','Заменило') |
| Remove (s, idx, len) | s - строка, idx - число, len - число | Строка | Возвращает строку, полученную удалением из строки S символов в количестве LEN, начиная с позиции IDX. Отсчет ведется с 0 символа. |
| Replace (s, s1, s2) | s - строка, s1 - строка, s2 - строка | Строка | Возвращает строку, образованную замещением в строке S всех встречающихся подстрок S1 на подстроки S2. |
| Substr (s, idx, len) | s - строка, idx - число, len - число | Строка | Возвращает вырезанную из строки S подстроку длиной LEN, начиная с позиции IDX. Отсчет ведется с 0 символа. |
| Trim (s) | s - строка | Строка | Возвращает строку, в которой исключены начальные и конечные пробельные символы. |
| TrimEnd (s) | s - строка | Строка | Возвращает строку, в которой исключены конечные пробельные символы. |
| TrimStart (s) | s - строка | Строка | Возвращает строку, в которой исключены начальные пробельные символы. |
Дата/время
Функции для работы со значениями Дата/время, доступные для использования в составе выражений. В качестве параметра функций, ожидающих значения Дата/время, может быть передано значение типа Дата/время, либо строковое в установленном формате. Стандартным форматом представления даты в строке является формат «dd.MM.yyyy HH:mm:ss», либо любой другой, установленный в системе или упомянутый в конфигурационном файле серверного приложения.
| Функция | Параметры | Тип возвращ. значения | Описание |
|---|---|---|---|
| Date (d) | d - дата/время или строка | Дата/время | Возвращает дату, сформированную на основе параметра (начало дня - время дня нулевое). |
| DateTime ( Y[, M[, D[, H[, m[, s[, ms]]]]]] ) | Y, M, D, H, m, s, ms - числа | Дата/время | Возвращает дату/время, сформированную на основе переданных параметров, которые могут быть не указаны. Соответственно: год, месяц, день, час, минута, секунда, миллисекунда. |
| DateTime (s) | s - строка | Дата/время | Принудительное преобразование строки к формату Дата/время. |
| DateFormat (s, d) | s - строка d - дата/время | Строка | Осуществляет преобразование даты к строке с указанным стандартным форматом. Описание форматов и специальных символов можно найти на странице http://msdn.microsoft.com/en-us/library/system.globalization.datetimeformatinfo.aspx |
| DateDiff (s, d1, d2) | s - строка d1 - дата/время d2 - дата/время | Число | Возвращает временной интервал между двумя указанными датами, выраженный в указанных с помощью параметра s единицах: Год - yy, yyyy Квартал - qq, q Месяц - mm, m День в году - dy, y День - dd, d Неделя - wk, ww Час - hh Минута - mi, n Секунда - ss, s Миллисекунда - ms |
| DayOfWeek (d) | d - дата/время или строка | Число | День недели, которому соответствует дата-параметр (1-7). |
| DayOfWeek (d) | d - дата/время или строка | Число | День недели, которому соответствует дата-параметр (1-7). |
| DayOfYear (d) | d - дата/время или строка | Число | Порядковый номер дня в году. |
| Hour (d) | d - дата/время или строка | Число | Час. |
| Millisecond (d) | d - дата/время или строка | Число | Миллисекунда. |
| Minute (d) | d - дата/время или строка | Число | Минута. |
| Month (d) | d - дата/время или строка | Число | Месяц. |
| NowTick () | Число | Возвращает текущий тик системы (количество миллисекунд с момента запуска операционной системы). | |
| Second (d) | d - дата/время или строка | Число | Секунда. |
| Year (d) | d - дата/время или строка | Число | Год. |
Преобразования
| Функция | Параметры | Тип возвращ. значения | Описание | ||
|---|---|---|---|---|---|
| Base64Decode | s - строка | Строка | Декодирует указанную строку в base64, используя текущую кодировку ANSI. | ||
| Base64Encode | s - строка | Строка | Кодирует указанную строку в base64, используя текущую кодировку ANSI. | ||
| Base64DecodeUtf8 | s - строка | Строка | Декодирует указанную строку из base64, используя кодировку UTF-8. | ||
| Base64DecodeUtf8 | s - строка | Строка | Декодирует указанную строку из base64, используя кодировку UTF-8. | ||
| Char (x) | x - число | Строка | Возвращает ANSI-символ, соответствующий коду X (0 - 255). | ||
| DecHex (x) | x - число | Строка | Возвращает строку с HEX-представлением числа. | ||
| Eval (s) | s - строка | Число, строка | Осуществляет расчет вложенного выражения, содержащегося в строке-параметре. Таким образом, давая возможность динамически задавать выражения вне сценария. Примеры: Eval ( «1 + 3» ) ⇒ 4; Eval ( «Привет» ) ⇒ ошибка; Eval ( « 'Привет' ») ⇒ «Привет»; Eval ( [cтр.переменная_1] ) ⇒ результат выполнения выражения, заданного в переменной; Eval ( « [стр.переменная_1] » ) ⇒ возвращает содержимое переменной. | ||
| GuidToInt (s) | s - строка | Число | Формирует доволно уникальное целое число на основе передаваемой строки, содержащей представление GUID-идентификатора. | ||
| HexDec (s) | s - строка | Число | Преобразует строку к числу, рассматривая ее как HEX-представление. | ||
| HexStr (s) | s - строка | Строка | Преобразует строку s в строку, рассматривая ее как HEX-представление. | ||
| If (x, a, b) | x -логическое выражение или число a, b - число или строка | Число, строка | Выводит результат в зависимости от логического выражения. Если x - не ноль (true), то возвращается a. Если x - ноль (false), возвращается b. В логическом выражении можно использовать операторы ==, >, <, >=, ⇐, &&, Примеры: If ( num([a]) > 5, 'a больше 5', 'a меньше 5') If ( num([a])&&num([b]), substr([callerid], 6, 5), 1) | ||
| MD5 (s) | s - строка | Строка | Возвращает MD5 код из строки s. | ||
| Num (s) | s - строка | Число | Принудительное преобразование строки к числу. Если строка не является корректным числом, возвращает 0. | ||
| Numval (s) | s - строка | Число | Принудительное преобразование строки к числу. Если строка не является корректным числом, возвращает число, преобразованное из максимального количества начальных символов строки-параметра, соответствующих корректному представлению. | ||
| Str (x) | x - число | Строка | Принудительное преобразование числа к строке. | ||
| StrHex(s) | s - строка | Строка | Производит HEX-преобразование из строки s. | ||
| Translit (s) | s - строка | Строка | Транслитерация строки в латинские символы. | ||
| Translit (s) | s - строка | Строка | Транслитерация строки в латинские символы. | ||
| UrlDecode (s) | s - строка | Строка | Декодирует указанную строку из UrlEncode, рассматривая ее как закодированную с помощью текущей кодировки ANSI. | ||
| UrlEncode (s) | s - строка | Строка | Кодирует указанную строку в UrlEncode, используя текущую кодировку ANSI. | ||
| UrlDecodeUtf8 (s) | s - строка | Строка | Декодирует указанную строку из UrlEncode, рассматривая ее как закодированную с помощью UTF-8. | ||
| UrlEncodeUtf8 (s) | s - строка | Строка | Кодирует указанную строку в UrlEncode, используя кодировку UTF-8. | ||
Сценарные
| Функция | Параметры | Тип возвращ. значения | Описание |
|---|---|---|---|
| ScriptFunc (s) | s - строка | Строка или число | Возвращает значение функции из списка, указанной в параметре s. Следует указывать полное название функции. ScriptFunc('Текущий час') ScriptFunc('Номер линии') |
Спецсимволы
Специальные символы, доступные для использования в составе выражений:
| Спецсимвол | Параметры | Тип возвращ. значения | Описание |
|---|---|---|---|
| EndLine (), EndLine | нет | Строка | Возвращает символ конца строки. |
| Tab (), Tab | нет | Строка | Возвращает символ табуляции. |
| Quot (), Quot | нет | Строка | Возвращает символ одинарной кавычки. |
| DblQuot (), DblQuot | нет | Строка | Возвращает символ двойной кавычки. |
Константы
Константы, доступные для использования в составе выражений:
| Константа | Тип возвращ. значения | Описание |
|---|---|---|
| Pi | Число | Число «Пи». 3,1415926… |
| Fi | Число | Число «Фи». 1,6180339… |
| E | Число | Число «E». 2,74182818… |
В качестве типов параметров (число и строка) указаны ожидаемые типы, в которые будет производится преобразование. Однако параметрами могут являться переменные другого типа, если они удовлетворяют правилу включения типов.
Функции без параметров можно указывать в выражении как с пустыми круглыми скобками в конце, так и без них.