Выражения

Выражение — это заданная создателем сценария последовательность арифметических или строковых действий, оперирующая с константами и переменными и функциями от них. Выражение используется для подстановки в качестве аргумента в значение объектов сценария. Значением выражения могут являться строка и число. Для явного указания строки заключайте текст в кавычки. В противном случае, сначала будут вычислены все арифметические комбинации, доступные для расчета. В приведенных примерах 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.
x1x2числоВозводит число 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 - дата/время или строкаЧислоГод.

Преобразования

ФункцияПараметрыТип возвращ. значенияОписание
Base64Decodes - строкаСтрокаДекодирует указанную строку в base64, используя текущую кодировку ANSI.
Base64Encodes - строкаСтрокаКодирует указанную строку в base64, используя текущую кодировку ANSI.
Base64DecodeUtf8s - строкаСтрокаДекодирует указанную строку из base64, используя кодировку UTF-8.
Base64DecodeUtf8s - строкаСтрокаДекодирует указанную строку из 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…

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


Функции без параметров можно указывать в выражении как с пустыми круглыми скобками в конце, так и без них.