Функции строк

В данной статье при описании функций приняты следующие обозначения:

  • Типы значений, которые принимает аргумент, указаны в угловых скобках.

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

  • После :: в угловых скобках указаны типы значений, которые возвращает функция.

Функции поиска и сопоставления

contains

Определяет, содержит ли строка value указанную подстроку substring.

Чтобы проверить наличие нескольких подстрок, используйте функцию rv_contains_any. Функция вернет true, если хотя бы одна из переданных подстрок присутствует в строке.

Спецификация функции

contains(value: <строка>, substring: <строка>, [case_sensitive: <логическое значение>])
:: <логическое значение>
Аргумент Тип Описание По умолчанию Обязателен

value

строка

Текст для поиска.

да

substring

строка

Подстрока, которую нужно найти в value.

да

case_sensitive

логическое значение

Должен ли поиск учитывать регистр символов.

true

нет

Примеры

Проверка наличия подстроки в строке (с учетом регистра)

Пример 1. Исходный код
contains("The Needle In The Haystack", "Needle")
Пример 2. Результат
true

Проверка наличия подстроки в строке (без учета регистра)

Пример 3. Исходный код
contains("The Needle In The Haystack", "needle", case_sensitive: false)
Пример 4. Результат
true

contains_all

Определяет, содержит ли строка value все указанные подстроки (substrings).

Чтобы проверить наличие в строке хотя бы одной из подстрок, используйте функцию rv_contains_any. Функция вернет true, если одна из переданных подстрок присутствует в строке.

Спецификация функции

contains_all(value: <строка>, substrings: <массив>, [case_sensitive: <логическое значение>])
:: <логическое значение>
Аргумент Тип Описание По умолчанию Обязателен

value

строка

Текст для поиска.

да

substrings

массив

Массив подстрок, которые нужно найти в value.

да

case_sensitive

логическое значение

Должен ли поиск учитывать регистр символов.

true

нет

Примеры

Проверка наличия подстрок в строке (с учетом регистра)

Пример 5. Исходный код
contains_all("The Needle In The Haystack", ["Needle", "Haystack"])
Пример 6. Результат
true

Проверка наличия подстроки в строке (без учета регистра)

Пример 7. Исходный код
contains_all("the NEEDLE in the haystack", ["needle", "haystack"], case_sensitive: false)
Пример 8. Результат
true

rv_contains_any

Определяет, содержится ли в строке value хотя бы одна подстрока из массива substrings.

Массив строк должен быть представлен литералом, без использования переменных. Это позволяет оптимизировать выполнение, заранее построив структуру для поиска конкретных подстрок.

Спецификация функции

rv_contains_any(value: <строка>, substrings: <массив>, [case_sensitive: <логическое значение>])
:: <логическое значение>
Аргумент Тип Описание По умолчанию Обязателен

value

строка

Строка, в которой производится поиск подстрок.

да

substrings

массив

Литерал массива строк, которые ищутся в value.

да

case_sensitive

логическое значение

Определяет, учитывается ли регистр символов при поиске.

true

нет

Ошибки

Функция rv_contains_any может возвращать ошибки, для которых требуется обработка:

  • Подстроки содержат недопустимые данные.

Примеры

Одна из подстрок содержится в значении

Пример 9. Исходный код
rv_contains_any("eqwas_)xz!123", ["asd", "xz"])
Пример 10. Результат
true

Одна из подстрок содержится в значении без учета регистра

Пример 11. Исходный код
rv_contains_any("eqwas_)xZ!123", ["asd", "Xz"], case_sensitive: false)
Пример 12. Результат
true

Ни одна подстрока не содержится в значении

Пример 13. Исходный код
rv_contains_any("eqwas_)xz!123", ["asd", "xz1"])
Пример 14. Результат
false

starts_with

Определяет, начинается ли value с подстроки substring.

Чтобы проверить несколько подстрок, используйте функцию rv_starts_with_any. Функция вернет true, если строка начинается хотя бы с одной из переданных подстрок.

Спецификация функции

starts_with(value: <строка>, substring: <строка>, [case_sensitive: <логическое значение>])
:: <логическое значение>
Аргумент Тип Описание По умолчанию Обязателен

value

строка

Строка для поиска.

да

substring

строка

Подстрока, с которой value должно начинаться.

да

case_sensitive

логическое значение

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

true

нет

Примеры

Строка начинается с подстроки (с учетом регистра)

Пример 15. Исходный код
starts_with("The Needle In The Haystack", "The Needle")
Пример 16. Результат
true

Строка начинается с подстроки (без учета регистра)

Пример 17. Исходный код
starts_with("The Needle In The Haystack", "the needle", case_sensitive: false)
Пример 18. Результат
true

rv_starts_with_any

Определяет, начинается ли строка value хотя бы с одной подстроки из массива substrings.

Массив строк должен быть представлен литералом, без использования переменных. Это позволяет оптимизировать выполнение, заранее построив структуру для поиска конкретных подстрок.

Спецификация функции

rv_starts_with_any(value: <строка>, substrings: <массив>, [case_sensitive: <логическое значение>])
:: <логическое значение>
Аргумент Тип Описание По умолчанию Обязателен

value

строка

Строка, в которой производится поиск подстрок.

да

substrings

массив

Литерал массива строк, которые ищутся в value.

да

case_sensitive

логическое значение

Определяет, учитывается ли регистр символов при поиске.

true

нет

Ошибки

Функция rv_contains_any может возвращать ошибки, для которых требуется обработка:

  • Подстроки содержат недопустимые данные.

Примеры

Значение начинается с одной из подстрок

Пример 19. Исходный код
rv_starts_with_any("xzeqwas_)xz!123", ["asd", "xz"])
Пример 20. Результат
true

Значение начинается с одной из подстрок без учета регистра

Пример 21. Исходный код
rv_starts_with_any("xZeqwas_)xz!123", ["asd", "Xz"], case_sensitive: false)
Пример 22. Результат
true

Значение не начинается ни с одной из подстрок

Пример 23. Исходный код
rv_starts_with_any("xzeqwas_)xz1!123", ["asd", "xz1"])
Пример 24. Результат
false

ends_with

Определяет, заканчивается ли строка value указанной подстрокой substring.

Чтобы проверить несколько подстрок, используйте функцию rv_ends_with_any. Функция вернет true, если строка заканчивается хотя бы одной из переданных подстрок.

Спецификация функции

ends_with(value: <строка>, substring: <строка>, [case_sensitive: <логическое значение>])
:: <логическое значение>
Аргумент Тип Описание По умолчанию Обязателен

value

строка

Строка для поиска.

да

substring

строка

Подстрока, которой должно заканчиваться value.

да

case_sensitive

логическое значение

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

true

нет

Примеры

Строка заканчивается (с учетом регистра)

Пример 25. Исходный код
ends_with("The Needle In The Haystack", "The Haystack")
Пример 26. Результат
true

Строка заканчивается (без учета регистра)

Пример 27. Исходный код
ends_with("The Needle In The Haystack", "the haystack", case_sensitive: false)
Пример 28. Результат
true

rv_ends_with_any

Определяет, заканчивается ли строка value хотя бы одной подстрокой из массива substrings.

Массив строк должен быть представлен литералом, без использования переменных. Это позволяет оптимизировать выполнение, заранее построив структуру для поиска конкретных подстрок.

Спецификация функции

rv_ends_with_any(value: <строка>, substrings: <массив>, [case_sensitive: <логическое значение>])
:: <логическое значение>
Аргумент Тип Описание По умолчанию Обязателен

value

строка

Строка, в которой производится поиск подстрок.

да

substrings

массив

Литерал массива строк, которые ищутся в value.

да

case_sensitive

логическое значение

Определяет, учитывается ли регистр символов при поиске.

true

нет

Ошибки

Функция rv_contains_any может возвращать ошибки, для которых требуется обработка:

  • Подстроки содержат недопустимые данные.

Примеры

Значение заканчивается одной из подстрок

Пример 29. Исходный код
rv_ends_with_any("eqwas_)xz!123xz", ["asd", "xz"])
Пример 30. Результат
true

Значение заканчивается одной из подстрок без учета регистра

Пример 31. Исходный код
rv_ends_with_any("eqwas_)xz!123xZ", ["asd", "Xz"], case_sensitive: false)
Пример 32. Результат
true

Значение не заканчивается ни одной из подстрок

Пример 33. Исходный код
rv_ends_with_any("eqwas_)xz!123xz", ["asd", "xz1"])
Пример 34. Результат
false

find

Определяет позицию начала первого найденного элемента в строке value, слева направо, который соответствует шаблону pattern, или возвращает -1, если элемент не найден.

Спецификация функции

find(value: <строка>, pattern: <регулярное выражение | строка>, [from: <целое число>])
:: <целое число>
Аргумент Тип Описание По умолчанию Обязателен

value

строка

Строка для поиска паттерна.

да

pattern

регулярное выражение строка

Регулярное выражение или строка для сравнения.

да

from

целое число

Смещение, с которого начинается поиск.

0

нет

Примеры

Поиск текста

Пример 35. Исходный код
find("foobar", "foo")
Пример 36. Результат
0

Поиск по регулярному выражению

Пример 37. Исходный код
find("foobar", r'b.r')
Пример 38. Результат
3

Нет совпадений

Пример 39. Исходный код
find("foobar", "baz")
Пример 40. Результат
-1

С учетом смещения

Пример 41. Исходный код
find("foobarfoobarfoo", "bar", 4)
Пример 42. Результат
9

match

Определяет, соответствует ли value указанному шаблону pattern.

Спецификация функции

match(value: <строка>, pattern: <регулярное выражение>)
:: <логическое значение>
Аргумент Тип Описание По умолчанию Обязателен

value

строка

Значение для проверки на соответствие.

да

pattern

регулярное выражение

Регулярное выражение для проверки соответствия.

да

Примеры

Проверка на соответствие регулярному выражению

Пример 43. Исходный код
match("I'm a little teapot", r'teapot')
Пример 44. Результат
true

match_any

Определяет, соответствует ли value хотя бы одному из указанных шаблонов patterns. Все шаблоны проверяются за один проход по целевой строке, что дает этой функции преимущество в производительности перед многократным вызовом функции match.

Спецификация функции

match_any(value: <строка>, patterns: <массив>)
:: <логическое значение>
Аргумент Тип Описание По умолчанию Обязателен

value

строка

Значение для проверки на соответствие.

да

patterns

массив

Массив регулярных выражений для проверки соответствия.

да

Примеры

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

Пример 45. Исходный код
match_any("I'm a little teapot", [r'frying pan', r'teapot'])
Пример 46. Результат
true

strlen

Возвращает количество символов UTF-8 в строке value. Это отличается от length, который бы подсчитал количество байтов в строке.

Обратите внимание, что это подсчет значений Unicode, который иногда может отличаться от кодовых точек Unicode.

Спецификация функции

strlen(value: <строка>)
:: <целое число>
Аргумент Тип Описание По умолчанию Обязателен

value

строка

Строка

да

Примеры

strlen

Пример 47. Исходный код
strlen("ñandú")
Пример 48. Результат
5

Функции разбиения и слияния массивов и строк

join

Объединяет каждую строку в массиве value в одну строку с возможным разделителем separator.

Спецификация функции

join(value: <массив>, [separator: <строка>])
:: <строка>
Аргумент Тип Описание По умолчанию Обязателен

value

массив

Массив строк, которые нужно объединить.

да

separator

строка

Строка, разделяющая каждый элемент при объединении.

нет

Примеры

Объединение массива (без разделителя)

Пример 49. Исходный код
join!(["bring", "us", "together"])
Пример 50. Результат
bringustogether

Объединение массива (разделитель — запятая)

Пример 51. Исходный код
join!(["sources", "transforms", "sinks"], separator: ", ")
Пример 52. Результат
sources, transforms, sinks

slice

Возвращает срез массива или строки value между позициями start и end.

Если параметры start и end отрицательные, они отсчитываются справа от строки или массива. Если end указывает на позицию, которая больше длины строки или массива, возвращается срез до конца строки или массива.

Спецификация функции

slice(value: <массив | строка>, start: <целое число>, [end: <целое число>])
:: <строка>
Аргумент Тип Описание По умолчанию Обязателен

value

массив строка

Строка или массив для среза.

да

start

целое число

Включительная начальная позиция. Индекс с нуля, который может быть отрицательным.

да

end

целое число

Исключительная конечная позиция. Индекс с нуля, который может быть отрицательным.

Длина строки

нет

Примеры

Срез строки (положительный индекс)

Пример 53. Исходный код
slice!("Supercalifragilisticexpialidocious", start: 5, end: 13)
Пример 54. Результат
califrag

Срез строки (отрицательный индекс)

Пример 55. Исходный код
slice!("Supercalifragilisticexpialidocious", start: 5, end: -14)
Пример 56. Результат
califragilistic

split

Разделяет строку value с использованием шаблона pattern.

Спецификация функции

split(value: <строка>, pattern: <строка | регулярное выражение>, [limit: <целое число>])
:: <массив>
Аргумент Тип Описание По умолчанию Обязателен

value

строка

Строка для разделения.

да

pattern

строка регулярное выражение

Строка разделяется каждый раз, когда совпадает с этим шаблоном. Может быть строкой или регулярным выражением.

да

limit

целое число

Максимальное количество подстрок для возврата.

нет

Примеры

Разделение строки (без ограничения)

Пример 57. Исходный код
split("apples and pears and bananas", " and ")
Пример 58. Результат
[
  "apples",
  "pears",
  "bananas"]

Разделение строки (с ограничением)

Пример 59. Исходный код
split("apples and pears and bananas", " and ", limit: 2)
Пример 60. Результат
[
  "apples",
  "pears and bananas"
]
Чтобы разбить строку на части заданной длины в байтах, используйте функцию chunks.

Функции редактирования строк

redact

Скрывает конфиденциальные данные, такие как номера социального страхования США (SSN) и другие виды личной информации, с помощью пользовательских шаблонов. Это помогает соблюдать правила и гарантировать, что конфиденциальные данные не покидают вашу сеть.

Поведение функции зависит от типа значения value:

  • Для строк — скрывает конфиденциальные данные и возвращает новую строку.

  • Для массивов — скрывает конфиденциальные данные в каждом элементе строки.

  • Для объектов — маскирует конфиденциальные данные в каждом значении строки, но не в ключах.

В массивах и объектах функция рекурсивно применяет эти операции ко всем вложенным массивам и объектам. Любые нестроковые элементы будут пропущены.

Любой скрытый текст будет заменен на [REDACTED].

Спецификация функции

redact(value: <строка | объект | массив>, filters: <массив>, [redactor: <строка | объект> ]))
:: <строка | объект | массив>
Аргумент Тип Описание По умолчанию Обязателен

value

строка объект массив

Значение, в котором требуется скрыть конфиденциальные данные.

да

filters

массив

Список фильтров, которые будут применены к value.

Каждый фильтр может быть указан одним из следующих способов:

- В виде регулярного выражения, которое будет использовано для скрытия соответствующего ему текста. - В виде объекта {"type": "pattern", "patterns": <массив>}, где под ключом patterns указан массив регулярных выражений.

Именованный фильтр us_social_security_number скрывает номера социального страхования в США. Он может быть двумя способами:

- в виде объекта {"type": "us_social_security_number"}; - в виде строки "us_social_security_number".

NOTE: Данный параметр должен быть представлен литералом, без использования переменных или других динамических выражений. Это позволяет выполнить проверку аргумента на этапе компиляции и исключить ошибки во время выполнения.

да

redactor

строка объект

Указывает, на что заменить совпадения с фильтрами.

Аргумент задается как объект вида {"type": <строка>, [<дополнительные ключи>]}, где указаны тип используемой замены под ключом type и дополнительные ключи в зависимости от типа. Поддерживаются следующие типы:

  • full — замена совпадений на строку "[REDACTED]".

  • text — замена на произвольную строку, указанную под обязательным ключом replacement.

  • sha2 — хеширование совпадений по алгоритму SHA-2. Поддерживает два необязательных параметра:

    • variant — вариант используемого алгоритма: SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, SHA-512/256 (по умолчанию);

    • encoding — кодировка хеша в виде текста: base16 или base64 (по умолчанию).

  • sha3 — хеширование совпадений по алгоритму SHA-3. Поддерживает два необязательных параметра:

    • variant — вариант используемого алгоритма: SHA-224, SHA-256, SHA-384, SHA-512 (по умолчанию);

    • encoding — кодировка хеша в виде текста: base16 или base64 (по умолчанию).

Этот параметр должен быть представлен статическим выражением. Нельзя использовать переменные или другие динамические выражения. Это позволяет выполнить проверку аргумента на этапе компиляции и исключить ошибки во время выполнения.

"full"

нет

Для часто используемых шаблонов замены можно использовать сокращения в виде строк:

  • "full" эквивалентна записи {"type": "full"}

  • "sha2" эквивалентна записи {"type": "sha2", "variant": "SHA-512/256", "encoding": "base64"}

  • "sha3" эквивалентна записи {"type": "sha3", "variant": "SHA3-512", "encoding": "base64"}

Примеры

Замена текста с помощью регулярного выражения

Пример 61. Исходный код
redact("my id is 123456", filters: [r'\d+'])
Пример 62. Результат
my id is [REDACTED]

Замена номеров социального страхования США в любом поле

Пример 63. Исходный код
redact({ "name": "John Doe",
"ssn": "123-12-1234"},
filters: ["us_social_security_number"])
Пример 64. Результат
{
  "name": "John Doe",
  "ssn": "[REDACTED]"
}

Замена произвольным текстом

Пример 65. Исходный код
redact("my id is 123456",
filters: [r'\d+'],
redactor: {"type": "text", "replacement": "***"})
Пример 66. Результат
my id is ***

Замена хешем SHA-3

Пример 67. Исходный код
redact("my id is 123456",
filters: [r'\d+'],
redactor: "sha3")
Пример 68. Результат
my id is ZNCdmTDI7PeeUTFnpYjLdUObdizo+bIupZdl8yqnTKGdLx6X3JIqPUlUWUoFBikX+yTR+OcvLtAqWO11NPlNJw==

Замена хешем SHA-256 в шестнадцатеричной кодировке

Пример 69. Исходный код
redact("my id is 123456",
filters: [r'\d+'],
redactor: {"type": "sha2",
"variant": "SHA-256",
"encoding": "base16"})
Пример 70. Результат
my id is 8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92

replace

Заменяет все совпадения с шаблоном pattern из значения value на строку with.

В аргументе with могут использоваться именованные группы.

Спецификация функции

replace(value: <строка>, pattern: <регулярное выражение | строка>, with: <строка>, [count: <целое число>])
:: <строка>
Аргумент Тип Описание По умолчанию Обязателен

value

строка

Исходная строка.

да

pattern

регулярное выражение строка

Заменяет все совпадения с этим шаблоном. Может быть статической строкой или регулярным выражением.

да

with

строка

Строка, которой заменяются совпадения.

да

count

целое число

Максимальное количество замен. -1 означает замену всех совпадений.

-1

нет

Примеры

Замена текста

Пример 71. Исходный код
replace("Apples and Bananas", "and", "not")
Пример 72. Результат
Apples not Bananas

Замена с помощью регулярного выражения

Пример 73. Исходный код
replace("Apples and Bananas", r'(?i)bananas', "Pineapples")
Пример 74. Результат
Apples and Pineapples

Замена только первого совпадения

Пример 75. Исходный код
replace("Bananas and Bananas", "Bananas", "Pineapples", count: 1)
Пример 76. Результат
Pineapples and Bananas

Замена с захватом групп

Пример 77. Исходный код
replace("foo123bar", r'foo(?P<num>\d+)bar', "$num")
Пример 78. Результат
"123"

replace_with

Заменяет все совпадения с шаблоном pattern из строки value с помощью замыкания.

Аргумент pattern принимает регулярное выражение, которое может использовать захват групп.

Синтаксис замыкания используется, чтобы вычислить строку, на которую заменяются совпадения. Замыкание принимает единственный аргумент, представляющий собой объект со следующими полями:

  • captures — массив, элементами которого являются захваченные группы.

    Если группа является незахватывающей (то есть обозначена ?:) то значение соответствующего элемента равно null.

  • string — строка, включающая полное совпадение.

  • поля, соответствующие именованным группам.

В результате функции возвращается новая строка с заменой совпадений, исходная строка не изменяется.

Спецификация функции

replace_with(value: <строка>, pattern: <регулярное выражение>, [count: <целое число> ]) -> |<переменная>| { <блок> }
:: <строка>
Аргумент Тип Описание По умолчанию Обязателен

value

строка

Исходная строка.

да

pattern

регулярное выражение

Шаблон для поиска совпадений. Может содержать захват групп.

Нельзя использовать имена групп captures и string.

да

count

целое число

Максимальное количество замен. -1 означает замену всех совпадений.

-1

нет

Примеры

Сделать первые буквы слов прописными

Пример 79. Исходный код
replace_with("no server available",
r'\b(\w)(\w*)') -> |match| {
    upcase!(match.captures[0]) + string!(match.captures[1])
}
Пример 80. Результат
No Server Available

Замена на хэш

Пример 81. Исходный код
replace_with("email from test@example.com", r'\w+@example.com') -> |match| {
    sha2(match.string, variant: "SHA-512/224")
}
Пример 82. Результат
email from adf6e1bc4415d24912bd93072ad34ef825a7b6eb3bf53f68def1fc17

Замена на хэш

Пример 83. Исходный код
replace_with("email from test@example.com", r'\w+@example.com') -> |match| {
    sha2(match.string, variant: "SHA-512/224")
}
Пример 84. Результат
email from adf6e1bc4415d24912bd93072ad34ef825a7b6eb3bf53f68def1fc17

Замена первого вхождения

Пример 85. Исходный код
replace_with("The file was not found, check the file name.", r'(?i)file', count: 1) -> |match| {
    "object"
}
Пример 86. Результат
The object was not found, check the file name.

Именованная группа

Пример 87. Исходный код
replace_with("level=error A message", r'level=(?P<level>\w+)') -> |match| {
    lvl = upcase!(match.level)
    "[{{lvl}}]"
}
Пример 88. Результат
[ERROR] A message

sieve

Сохраняет в value только совпадения с шаблоном pattern.

Функцию можно использовать для определения символов, которые разрешены в строке, и удаления всего остального.

Спецификация функции

sieve(value: <строка>, pattern: <регулярное выражение>, [replace_single: <строка> , replace_repeated: <строка> ])
:: <строка>
Аргумент Тип Описание По умолчанию Обязателен

value

строка

Исходная строка.

да

pattern

регулярное выражение

Шаблон, совпадения с которым должны остаться в строке.

да

replace_single

строка

Строка, на которую будут заменены отдельные символы, не совпадающие с шаблоном.

нет

replace_repeated

строка

Строка, на которую будут заменены последовательности нескольких символов, не совпадающих с шаблоном.

нет

Примеры

Очистка строки с помощью регулярного выражения

Пример 89. Исходный код
sieve("test123%456.فوائد.net.", r'[a-z0-9.]')
Пример 90. Результат
test123456..net.

Очистка с указанием заменяющих строк

Пример 91. Исходный код
sieve("test123%456.فوائد.net.", r'[a-z.0-9]', replace_single: "X", replace_repeated: "<REMOVED>")
Пример 92. Результат
test123X456.<REMOVED>.net.

truncate

Обрезает строку value до количества символов limit.

Спецификация функции

truncate(value: <строка>, limit: <целое число | число с плавающей точкой>, ellipsis: <логическое значение>)
:: <строка>
Аргумент Тип Описание По умолчанию Обязателен

value

строка

Строка для обрезания.

да

limit

целое число число с плавающей точкой

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

да

ellipsis

логическое значение

Добавлять ли многоточие при обрезании строки. Если параметр равен true и длина строки превышает limit, в конце будут добавлены символы …​.

false

нет

suffix

строка

Суффикс, который добавляется к обрезанным строкам. Если ellipsis равен true, этот параметр игнорируется.

нет

Примеры

Обрезка с многоточием

Пример 93. Исходный код
truncate("A rather long sentence.", limit: 11, ellipsis: true)
Пример 94. Результат
A rather lo...

Обрезка с произвольным суффиксом

Пример 95. Исходный код
truncate("A rather long sentence.", limit: 11, suffix: "[TRUNCATED]")
Пример 96. Результат
A rather lo[TRUNCATED]

Функции изменения регистра

downcase

Преобразует строку value в нижний регистр, где "нижний регистр" определяется по свойству Unicode Lowercase.

Спецификация функции

downcase(value: <строка>)
:: <строка>
Аргумент Тип Описание По умолчанию Обязателен

value

строка

Строка, которую необходимо преобразовать к нижнему регистру.

да

Примеры

Приведение строки к нижнему регистру

Пример 97. Исходный код
downcase("Hello, World!")
Пример 98. Результат
hello, world!

upcase

Приводит value к верхнему регистру, который определяется согласно свойству Unicode Uppercase.

Спецификация функции

upcase(value: <строка>)
:: <строка>
Аргумент Тип Описание По умолчанию Обязателен

value

строка

Строка, которую нужно привести к верхнему регистру

да

Примеры

Приведение строки к верхнему регистру

Пример 99. Исходный код
upcase("Hello, World!")
Пример 100. Результат
HELLO, WORLD!

camelcase

Приводит строку value к camelCase ("верблюжьему" регистру). Опционально можно указать исходный регистр, иначе будет произведена попытка определить регистр автоматически.

Спецификация функции

camelcase(value: <строка>, [original_case: <строка> ])
:: <строка>
Аргумент Тип Описание По умолчанию Обязателен

value

строка

Строка, которую нужно привести к camelCase.

да

original_case

строка

Опциональная подсказка об исходном типе регистра. Допустимые значения:

  • camelCase;

  • kebab-case;

  • PascalCase;

  • SCREAMING_SNAKE;

  • snake_case.

нет

Примеры

Приведение строки к camelCase

Пример 101. Исходный код
camelcase("input-string")
Пример 102. Результат
inputString

Приведение строки к camelCase с заданным исходным регистром

Пример 103. Исходный код
camelcase("input-string", "kebab-case")
Пример 104. Результат
inputString

kebabcase

Приводит строку value к kebab-case (регистру "шашлыка"). Опционально можно указать исходный регистр, иначе будет произведена попытка определить регистр автоматически.

Спецификация функции

kebabcase(value: <строка>, [original_case: <строка> ])
:: <строка>
Аргумент Тип Описание По умолчанию Обязателен

value

строка

Строка, которую нужно привести к kebab-case.

да

original_case

строка

Опциональная подсказка об исходном типе регистра. Допустимые значения:

  • camelCase;

  • kebab-case;

  • PascalCase;

  • SCREAMING_SNAKE;

  • snake_case.

нет

Примеры

Приведение строки к kebab-case

Пример 105. Исходный код
kebabcase("InputString")
Пример 106. Результат
input-string

Приведение строки к kebab-case с заданным исходным регистром

Пример 107. Исходный код
kebabcase("InputString", "PascalCase")
Пример 108. Результат
input-string

screamingsnakecase

Приводит строку value к SCREAMING_SNAKE case (регистру "кричащей змеи"). Опционально можно указать исходный регистр, иначе будет произведена попытка определить регистр автоматически.

Спецификация функции

screamingsnakecase(value: <строка>, [original_case: <строка> ])
:: <строка>
Аргумент Тип Описание По умолчанию Обязателен

value

строка

Строка, которую нужно привести к SCREAMING_SNAKE case.

да

original_case

строка

Опциональная подсказка об исходном типе регистра. Допустимые значения:

  • camelCase;

  • kebab-case;

  • PascalCase;

  • SCREAMING_SNAKE;

  • snake_case.

нет

Примеры

Приведение строки к SCREAMING_SNAKE case

Пример 109. Исходный код
screamingsnakecase("input-string")
Пример 110. Результат
INPUT_STRING

Приведение строки к SCREAMING_SNAKE case с заданным исходным регистром

Пример 111. Исходный код
screamingsnakecase("input-string", "kebab-case")
Пример 112. Результат
INPUT_STRING

snakecase

Приводит строку value к snake_case ("змеиному" регистру). Опционально можно указать исходный регистр, иначе будет произведена попытка определить регистр автоматически.

Спецификация функции

snakecase(value: <строка>, [original_case: <строка> ])
:: <строка>
Аргумент Тип Описание По умолчанию Обязателен

value

строка

Строка, которую нужно привести к snake_case.

да

original_case

строка

Опциональная подсказка об исходном типе регистра. Допустимые значения:

  • camelCase;

  • kebab-case;

  • PascalCase;

  • SCREAMING_SNAKE;

  • snake_case.

нет

Примеры

Приведение строки к snake_case

Пример 113. Исходный код
snakecase("input-string")
Пример 114. Результат
input_string

Приведение строки к snake_case с заданным исходным регистром

Пример 115. Исходный код
snakecase("input-string", "kebab-case")
Пример 116. Результат
input_string

pascalcase

Приводит строку value к PascalCase (регистру Pascal). Опционально можно указать исходный регистр, иначе будет произведена попытка определить регистр автоматически.

Спецификация функции

pascalcase(value: <строка>, [original_case: <строка> ])
:: <строка>
Аргумент Тип Описание По умолчанию Обязателен

value

строка

Строка, которую нужно привести к PascalCase.

да

original_case

строка

Опциональная подсказка об исходном типе регистра. Допустимые значения:

  • camelCase;

  • kebab-case;

  • PascalCase;

  • SCREAMING_SNAKE;

  • snake_case.

нет

Примеры

Приведение строки к PascalCase

Пример 117. Исходный код
pascalcase("input-string")
Пример 118. Результат
InputString

Приведение строки к PascalCase с заданным исходным регистром

Пример 119. Исходный код
pascalcase("input-string", "kebab-case")
Пример 120. Результат
InputString