Виртуальные методы в PROScript
Виртуальные методы для работы со строками
list
Возвращает значение как массив из одного элемента
[% 'qwerty'.list().size() %] # вернет 1
hash
[% dump('aaaa'.hash()) %]
{ "value" : "aaaa" }
length
Возвращает длину строки
[% 'aaaa'.length() %] #вернет 4
size
Всегда возвращает 1 для строковых пеерменных
defined
Возвращает true, если переменная определена
draft
Подставляет в шаблон весь контент из другого шаблона по его id
или alias
[% draft("id", "КОД_ШАБЛОНА") %]
match
Находит в строке вхождения, соответствующие регулярному выражению
[% name = 'Larry Wall' %]
[% matches = name.match('(\w+) (\w+)') %]
[% matches.1 %], [% matches.0 %] # Wall, Larry
Если совпадений не найдено, то вернется false:
[% "We're not worthy!" IF name.match('Larry Wall') %]
[% IF (matches = name.match('(\w+) (\w+)')) %]
pattern matches: [% matches.join(', ') %]
[% ELSE %]
pattern does not match
[% END %]
repeat
Повторяет строку указанное число раз
[% name = 'foo' %]
[% name.repeat(3) %] # foofoofoo
replace
Заменяет в строке все найденные по регулярному выражению подстроки на указанное значение
[% name = 'foo, bar & baz' %]
[% name.replace('\W+', '_') %] # foo_bar_baz
remove
Удаляет из строки все вхождения, соответствующие указанному регулярному выражению
[% name = 'foo, bar & baz' %]
[% name.remove('\W+') %] # foobarbaz
split
Конвертирует строку в массив из строк, разделяя по указанному символу
[% dump('2018-09-06'.split('-')) %]
[ "2018", "09", "06" ]
chunk
Конвертирует строку в массив строк, разделяя на строки указанного размера
[% ccard_no = "1234567824683579";
ccard_no.chunk(4).join()
%]
1234 5678 2468 3579
substr
Возвращает подстроку указанной длины, начиная с указанной позиции
[% str 'foo bar baz wiz waz woz') %]
[% str.substr(4, 3) %] # bar