Оператор 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>и все соответствующие поля при выводе будут автоматически обрабатываться методом. Очень удобно в тех случаях, когда не хочется каждый раз при выводе писать для поля цепочку обязательных методов обработки.
|