Форматирование текста

В этом разделе представлены различные форматтеры для текстовых данных. Ниже для каждого форматтера приведены синтаксис, примеры и результаты.

1. :lowerCase

Описание синтаксиса

Преобразует все буквы в нижний регистр.

Пример
'My Car':lowerCase()   // Выводит "my car"
'my car':lowerCase()   // Выводит "my car"
null:lowerCase()       // Выводит null
1203:lowerCase()       // Выводит 1203
Результат

Каждый пример выводит результат, указанный в комментариях.

2. :upperCase

Описание синтаксиса

Преобразует все буквы в верхний регистр.

Пример
'My Car':upperCase()   // Выводит "MY CAR"
'my car':upperCase()   // Выводит "MY CAR"
null:upperCase()       // Выводит null
1203:upperCase()       // Выводит 1203
Результат

Каждый пример выводит результат, указанный в комментариях.

3. :ucFirst

Описание синтаксиса

Делает заглавной только первую букву строки, оставляя остальную часть без изменений.

Пример
'My Car':ucFirst()     // Выводит "My Car"
'my car':ucFirst()     // Выводит "My car"
null:ucFirst()         // Выводит null
undefined:ucFirst()    // Выводит undefined
1203:ucFirst()         // Выводит 1203
Результат

Результат соответствует комментариям.

4. :ucWords

Описание синтаксиса

Делает первую букву каждого слова в строке заглавной.

Пример
'my car':ucWords()     // Выводит "My Car"
'My cAR':ucWords()     // Выводит "My CAR"
null:ucWords()         // Выводит null
undefined:ucWords()    // Выводит undefined
1203:ucWords()         // Выводит 1203
Результат

Результат соответствует примерам.

5. :print(message)

Описание синтаксиса

Всегда возвращает указанное сообщение независимо от исходных данных, что удобно как резервный форматтер.
Параметр:

  • message: выводимый текст.
Пример
'My Car':print('hello!')   // Выводит "hello!"
'my car':print('hello!')   // Выводит "hello!"
null:print('hello!')       // Выводит "hello!"
1203:print('hello!')       // Выводит "hello!"
Результат

Во всех случаях возвращает строку "hello!".

6. :printJSON

Описание синтаксиса

Преобразует объект или массив в строку формата JSON.

Пример
[{'id':2,'name':'homer'},{'id':3,'name':'bart'}]:printJSON()
// Выводит "[
  {"id": 2, "name": "homer"},
  {"id": 3, "name": "bart"}
]"
'my car':printJSON()   // Выводит ""my car""
Результат

На выходе получается JSON-строка переданных данных.

7. :unaccent

Описание синтаксиса

Удаляет диакритические знаки из текста, приводя его к варианту без акцентов.

Пример
'crème brulée':unaccent()   // Выводит "creme brulee"
'CRÈME BRULÉE':unaccent()   // Выводит "CREME BRULEE"
'être':unaccent()           // Выводит "etre"
'éùïêèà':unaccent()       // Выводит "euieea"
Результат

Во всех примерах выводится текст без акцентов.

8. :convCRLF

Описание синтаксиса

Преобразует символы перевода строки (\r\n или \n) в теги переноса, специфичные для формата документа. Это полезно для DOCX, PPTX, ODT, ODP и ODS.
Примечание: при использовании :html перед :convCRLF символы \r\n преобразуются в тег <br>.

Пример
// Для формата ODT:
'my blue 
 car':convCRLF()    // Выводит "my blue <text:line-break/> car"
'my blue 
 car':convCRLF()    // Выводит "my blue <text:line-break/> car"

// Для формата DOCX:
'my blue 
 car':convCRLF()    // Выводит "my blue </w:t><w:br/><w:t> car"
'my blue 
 car':convCRLF()    // Выводит "my blue </w:t><w:br/><w:t> car"
Результат

Результат показывает маркеры переноса строки, соответствующие целевому формату документа.

9. :substr(begin, end, wordMode)

Описание синтаксиса

Выполняет операцию выделения подстроки, начиная с индекса begin (нумерация с 0) и заканчивая перед индексом end.
Необязательный параметр wordMode (булево значение или last) определяет, нужно ли избегать разрыва слова посередине.

Пример
'foobar':substr(0, 3)            // Выводит "foo"
'foobar':substr(1)               // Выводит "oobar"
'foobar':substr(-2)              // Выводит "ar"
'foobar':substr(2, -1)           // Выводит "oba"
'abcd efg hijklm':substr(0, 11, true)  // Выводит "abcd efg "
'abcd efg hijklm':substr(1, 11, true)  // Выводит "abcd efg "
Результат

На выходе подстрока, извлечённая в соответствии с параметрами.

10. :split(delimiter)

Описание синтаксиса

Разбивает строку на массив с использованием указанного разделителя.
Параметр:

  • delimiter: строка-разделитель.
Пример
'abcdefc12':split('c')    // Выводит ["ab", "def", "12"]
1222.1:split('.')         // Выводит ["1222", "1"]
'ab/cd/ef':split('/')      // Выводит ["ab", "cd", "ef"]
Результат

Результатом примера является массив, разделённый указанным разделителем.

11. :padl(targetLength, padString)

Описание синтаксиса

Дополняет строку слева указанными символами, пока итоговая длина не достигнет targetLength.
Если целевая длина меньше исходной длины строки, возвращается исходная строка.
Параметры:

  • targetLength: требуемая итоговая длина.
  • padString: строка для заполнения (по умолчанию пробел).
Пример
'abc':padl(10)              // Выводит "       abc"
'abc':padl(10, 'foo')       // Выводит "foofoofabc"
'abc':padl(6, '123465')     // Выводит "123abc"
'abc':padl(8, '0')          // Выводит "00000abc"
'abc':padl(1)               // Выводит "abc"
Результат

Каждый пример выводит строку с соответствующим дополнением слева.

12. :padr(targetLength, padString)

Описание синтаксиса

Дополняет строку справа указанными символами, пока итоговая длина не достигнет targetLength.
Параметры такие же, как у :padl.

Пример
'abc':padr(10)              // Выводит "abc       "
'abc':padr(10, 'foo')       // Выводит "abcfoofoof"
'abc':padr(6, '123465')     // Выводит "abc123"
'abc':padr(8, '0')          // Выводит "abc00000"
'abc':padr(1)               // Выводит "abc"
Результат

На выходе строка, дополненная символами справа.

13. :ellipsis(maximum)

Описание синтаксиса

Если текст превышает указанное количество символов, добавляет в конце многоточие ("...").
Параметр:

  • maximum: максимально допустимое число символов.
Пример
'abcdef':ellipsis(3)      // Выводит "abc..."
'abcdef':ellipsis(6)      // Выводит "abcdef"
'abcdef':ellipsis(10)     // Выводит "abcdef"
Результат

Примеры показывают обрезку текста и добавление многоточия при необходимости.

14. :prepend(textToPrepend)

Описание синтаксиса

Добавляет указанный текст в начало строки.
Параметр:

  • textToPrepend: текст-префикс.
Пример
'abcdef':prepend('123')     // Выводит "123abcdef"
Результат

На выходе текст с добавленным указанным префиксом.

15. :append(textToAppend)

Описание синтаксиса

Добавляет указанный текст в конец строки.
Параметр:

  • textToAppend: текст-суффикс.
Пример
'abcdef':append('123')      // Выводит "abcdef123"
Результат

На выходе текст с добавленным указанным суффиксом.

16. :replace(oldText, newText)

Описание синтаксиса

Заменяет все вхождения oldText в тексте на newText.
Параметры:

  • oldText: заменяемый текст.
  • newText: новый текст для замены.
    Примечание: если newText равен null, это означает удаление совпадающего текста.
Пример
'abcdef abcde':replace('cd', 'OK')    // Выводит "abOKef abOKe"
'abcdef abcde':replace('cd')          // Выводит "abef abe"
'abcdef abcde':replace('cd', null)      // Выводит "abef abe"
'abcdef abcde':replace('cd', 1000)      // Выводит "ab1000ef ab1000e"
Результат

На выходе текст после замены указанных фрагментов.

17. :len

Описание синтаксиса

Возвращает длину строки или массива.

Пример
'Hello World':len()     // Выводит 11
'':len()                // Выводит 0
[1,2,3,4,5]:len()       // Выводит 5
[1,'Hello']:len()       // Выводит 2
Результат

Выводит соответствующую длину в виде числа.

18. :t

Описание синтаксиса

Переводит текст с использованием словаря перевода.
Примеры и результаты зависят от фактической конфигурации словаря перевода.

19. :preserveCharRef

Описание синтаксиса

По умолчанию некоторые недопустимые XML-символы (например &, >, < и т. д.) удаляются. Этот форматтер сохраняет символьные ссылки (например &#xa7; остаётся без изменений) и подходит для отдельных сценариев генерации XML.
Примеры и результаты зависят от конкретного сценария использования.