Главная  |  О продукте  |  Пользователям  |  Community

Поиск

 

Оператор replace

Оператор replace производит текстовую замену при обращении к указанным полям документов.

Синтаксис:

<replace from=expr to=expr [fields=expr]>djemscript</replace>

где,

Параметр

Описание

from

строка – признак начала строки для замены

to

строка – признак окончания строки для замены

fields

список полей (через запятую), в которых необходимо производить замену. Если не указан, то оператор оказывает действие на все поля в документе.

 

Оператор replace находит строки, начинающиеся со строки from и заканчивающийся строкой to и вырезает текст между ними. Внутри блока замены можно использовать переменную _match_ для обращения к содержимому вырезанного куска – <var[_match_]>. К данной переменной можно применять любые методы DJEM-скрипта.

Пример:

<replace from="[u]" to="[/u]"><var[_match_].ucase></replace>

при обработке поля с содержимым:

Это проверка [u]корректной[/u] работы скрипта

Результат:

Это проверка КОРРЕКТНОЙ работы скрипта.

 

Можно использовать оператор replace с указанием одного лишь параметра from - в этом случае будут заменены все найденные подстроки, совпадающие с указанным в параметре from значением.

 

Пример:

<replace from="р">!</replace>

при обработке поля с содержимым:

Это проверка [u]корректной[/u] работы скрипта

Результат:

Это п!ове!ка [u]ко!!ектной[/u] !аботы ск!ипта

 

Возможно и использование вообще без параметров from и to - такой прием позволяет наложить на все поле сразу обработку каким-нибудь методом или методами. Например, если хочется все текстовые поля _name, intro и text обработать, скажем, методом format("rus") для правильного типографского вывода текста, можно написать

<replace fields="_name,intro,text"><var[_match_].format("rus")></replace>и все соответствующие поля при выводе будут автоматически обрабатываться методом. Очень удобно в тех случаях, когда не хочется каждый раз при выводе писать для поля цепочку обязательных методов обработки.