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

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

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

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

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

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

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

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

contains

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

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

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

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

value

строка

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

да

substring

строка

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

да

case_sensitive

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

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

true

нет

Примеры

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

Исходный код
contains("The Needle In The Haystack", "Needle")
Результат
true

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

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

contains_all

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

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

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

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

value

строка

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

да

substrings

массив

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

да

case_sensitive

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

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

true

нет

Примеры

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

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

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

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

rv_contains_any

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

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

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

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

value

строка

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

да

substrings

массив

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

да

case_sensitive

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

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

true

нет

Ошибки

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

Примеры

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

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

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

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

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

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

starts_with

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

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

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

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

value

строка

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

да

substring

строка

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

да

case_sensitive

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

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

true

нет

Примеры

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

Исходный код
starts_with("The Needle In The Haystack", "The Needle")
Результат
true

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

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

rv_starts_with_any

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

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

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

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

value

строка

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

да

substrings

массив

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

да

case_sensitive

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

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

true

нет

Ошибки

Функция rv_starts_with_any возвращает ошибку, для которой требуется обработка, если подстроки содержат недопустимые данные.

Примеры

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

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

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

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

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

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

ends_with

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

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

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

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

value

строка

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

да

substring

строка

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

да

case_sensitive

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

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

true

нет

Примеры

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

Исходный код
ends_with("The Needle In The Haystack", "The Haystack")
Результат
true

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

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

rv_ends_with_any

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

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

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

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

value

строка

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

да

substrings

массив

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

да

case_sensitive

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

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

true

нет

Ошибки

Функция rv_ends_with_any возвращает ошибку, для которой требуется обработка, если подстроки содержат недопустимые данные.

Примеры

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

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

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

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

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

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

find

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

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

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

value

строка

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

да

pattern

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

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

да

from

целое число

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

0

нет

Примеры

Поиск текста

Исходный код
find("foobar", "foo")
Результат
0

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

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

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

Исходный код
find("foobar", "baz")
Результат
-1

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

Исходный код
find("foobarfoobarfoo", "bar", 4)
Результат
9

match

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

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

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

value

строка

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

да

pattern

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

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

да

Пример

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

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

match_any

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

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

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

value

строка

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

да

patterns

массив

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

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

да

Пример

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

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

Функции анализа строк

shannon_entropy

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

Разбиение на байты — самое быстрое, но может дать нежелательные результаты при работе с UTF-8. Разбиение на графемы — самое медленное, но наиболее точное в таких случаях.

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

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

value

строка

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

да

segmentation

строка

Способ разбиения строки для вычисления энтропии. Допустимые значения:

  • "bytes";

  • "codepoints";

  • "graphemes".

"bytes"

нет

Примеры

Вычисление энтропии с разбиением строки на байты

Исходный код
floor(shannon_entropy("vector.dev"), precision: 4)
Результат
2.9219

Вычисление энтропии строки в UTF-8 с разбиением на байты

Исходный код
floor(shannon_entropy("test123%456.فوائد.net."), precision: 4)
Результат
4.0784

Вычисление энтропии строки в UTF-8 с разбиением на графемы

Исходный код
floor(shannon_entropy("test123%456.فوائد.net.", segmentation: "grapheme"), precision: 4)
Результат
3.9362

strlen

Возвращает количество символов UTF-8 в строке value.

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

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

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

value

строка

Строка

да

Пример

Длина строки

Исходный код
strlen("ñandú")
Результат
5

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

join

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

Чтобы упростить структуру кода, вместо функции join используйте шаблонизацию строк.

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

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

value

массив

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

да

separator

строка

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

нет

Примеры

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

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

Объединение массива с разделителем в виде запятой

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

slice

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

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

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

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

value

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

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

да

start

целое число

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

да

end

целое число

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

длина строки

нет

Примеры

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

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

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

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

split

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

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

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

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

value

строка

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

да

pattern

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

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

да

limit

целое число

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

нет

Примеры

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

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

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

Исходный код
split("apples and pears and bananas", " and ", limit: 2)
Результат
[
  "apples",
  "pears and bananas"
]

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

redact

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

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

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

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

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

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

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

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

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

value

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

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

да

filters

массив

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

Каждый фильтр может быть указан как регулярное выражение или объект, содержащий массив регулярных выражений. Подробности приведены в разделе Фильтры.

да

redactor

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

Значение, на которое будут заменены совпадения с фильтрами. Например, замена может быть произведена на указанную строку или хэш совпадения. Подробности приведены в разделе Способ замены.

"full"

нет

Фильтры

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

  • В виде регулярного выражения, которое будет использовано для скрытия соответствующего ему текста.

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

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

Способ замены

Аргумент задается как объект следующего вида:

{"type": <replacement_type>,
[replacement: <replacement_text>]
[variant: <algorithm_variant>, encoding: <encoding>]}

Здесь:

  • <replacement_type> — тип используемой замены под ключом type. Дополнительные ключи задаются в зависимости от типа. Доступные типы:

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

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

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

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

  • <replacement_text> — произвольная строка, на которую заменяются совпадения при типе text.

  • <algorithm_variant> — вариант используемого алгоритма хэширования. Доступные варианты:

    • SHA-224;

    • SHA-256;

    • SHA-384;

    • SHA-512 — используется по умолчанию для sha3;

    • SHA-512/224 (только для sha2);

    • SHA-512/256 (только для sha2) — используется по умолчанию для sha2.

  • <encoding> — кодировка хэша в виде текста. Доступные варианты:

    • base16;

    • base64 — используется по умолчанию.

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

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

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

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

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

Примеры

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

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

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

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

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

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

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

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

replace

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

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

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

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

value

строка

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

да

pattern

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

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

да

with

строка

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

да

count

целое число

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

-1

нет

Примеры

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

Исходный код
replace("Apples and Bananas", "and", "not")
Результат
"Apples not Bananas"

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

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

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

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

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

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

replace_with

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

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

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

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

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

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

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

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

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

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

value

строка

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

да

pattern

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

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

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

да

count

целое число

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

-1

нет

Примеры

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

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

Замена на хэш

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

Замена на хэш

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

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

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

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

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

sieve

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

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

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

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

value

строка

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

да

pattern

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

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

да

replace_single

строка

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

нет

replace_repeated

строка

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

нет

Примеры

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

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

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

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

truncate

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

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

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

value

строка

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

да

limit

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

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

да

suffix

строка

Суффикс, который добавляется к обрезанным строкам.

нет

Примеры

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

Исходный код
truncate("A rather long sentence.", limit: 11, suffix: "...")
Результат
"A rather lo..."

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

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

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

downcase

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

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

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

value

строка

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

да

Пример

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

Исходный код
downcase("Hello, World!")
Результат
"hello, world!"

upcase

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

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

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

value

строка

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

да

Пример

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

Исходный код
upcase("Hello, World!")
Результат
"HELLO, WORLD!"

camelcase

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

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

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

value

строка

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

да

original_case

строка

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

  • camelCase;

  • kebab-case;

  • PascalCase;

  • SCREAMING_SNAKE;

  • snake_case.

нет

Пример

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

Исходный код
camelcase("input-string")
Результат
"inputString"

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

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

kebabcase

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

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

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

value

строка

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

да

original_case

строка

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

  • camelCase;

  • kebab-case;

  • PascalCase;

  • SCREAMING_SNAKE;

  • snake_case.

нет

Примеры

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

Исходный код
kebabcase("InputString")
Результат
"input-string"

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

Исходный код
kebabcase("InputString", "PascalCase")
Результат
"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

Исходный код
screamingsnakecase("input-string")
Результат
"INPUT_STRING"

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

Исходный код
screamingsnakecase("input-string", "kebab-case")
Результат
"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

Исходный код
snakecase("input-string")
Результат
"input_string"

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

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

pascalcase

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

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

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

value

строка

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

да

original_case

строка

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

  • camelCase;

  • kebab-case;

  • PascalCase;

  • SCREAMING_SNAKE;

  • snake_case.

нет

Примеры

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

Исходный код
pascalcase("input-string")
Результат
"InputString"

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

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

Была ли полезна эта страница?

Обратная связь