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

Функции для работы с URL

примечание

Функции, упомянутые в этом разделе, оптимизированы для максимальной производительности и в большинстве случаев не соответствуют стандарту RFC-3986. Функции, которые реализуют RFC-3986, имеют RFC в конце имени функции и, как правило, медленнее.

Вы можете по умолчанию использовать варианты функций без RFC, когда работаете с общедоступными зарегистрированными доменами, которые не содержат строк пользователя или символов @. Ниже представлена таблица, в которой указано, какие символы в URL могут () или не могут () быть обработаны соответствующими вариантами RFC и не RFC:

Символне-RFCRFC
' '
\t
<
>
%✔*
{
}
|
\\
^
~✔*
[
]
;✔*
=✔*
&✔*

Символы, отмеченные *, являются под-разделителями в RFC 3986 и допустимы для информации о пользователе после символа @.

Функции, которые извлекают части URL

Если соответствующая часть отсутствует в URL, возвращается пустая строка.

protocol

Извлекает протокол из URL.

Примеры типичных возвращаемых значений: http, https, ftp, mailto, tel, magnet.

domain

Извлекает имя хоста из URL.

Синтаксис

Аргументы

URL может быть указан с протоколом или без него. Примеры:

Для этих примеров функция domain возвращает следующие результаты:

Возвращаемые значения

  • Имя хоста, если входная строка может быть разобрана как URL, в противном случае возвращается пустая строка. String.

Пример

domainRFC

Извлекает имя хоста из URL. Похоже на domain, но соответствует RFC 3986.

Синтаксис

Аргументы

Возвращаемые значения

  • Имя хоста, если входная строка может быть разобрана как URL, в противном случае возвращается пустая строка. String.

Пример

domainWithoutWWW

Возвращает домен без ведущего www., если он присутствует.

Синтаксис

Аргументы

Возвращаемые значения

  • Имя домена, если входная строка может быть разобрана как URL (без ведущего www.), в противном случае возвращается пустая строка. String.

Пример

domainWithoutWWWRFC

Возвращает домен без ведущего www., если он присутствует. Похоже на domainWithoutWWW, но соответствует RFC 3986.

Синтаксис

Аргументы

Возвращаемые значения

  • Имя домена, если входная строка может быть разобрана как URL (без ведущего www.), в противном случае возвращается пустая строка. String.

Пример

Запрос:

Результат:

topLevelDomain

Извлекает домен верхнего уровня из URL.

Аргументы

примечание

URL может быть указан с протоколом или без него. Примеры:

Возвращаемые значения

  • Имя домена, если входная строка может быть разобрана как URL. В противном случае возвращается пустая строка. String.

Пример

Запрос:

Результат:

topLevelDomainRFC

Извлекает домен верхнего уровня из URL. Похоже на topLevelDomain, но соответствует RFC 3986.

Аргументы

примечание

URL может быть указан с протоколом или без него. Примеры:

Возвращаемые значения

  • Имя домена, если входная строка может быть разобрана как URL. В противном случае возвращается пустая строка. String.

Пример

Запрос:

Результат:

firstSignificantSubdomain

Возвращает "первый значимый поддомен". Первый значимый поддомен — это домен второго уровня для com, net, org или co, в противном случае это домен третьего уровня. Например, firstSignificantSubdomain ('https://news.clickhouse.com/') = 'clickhouse', firstSignificantSubdomain ('https://news.clickhouse.com.tr/') = 'clickhouse'. Список "несущественных" доменов второго уровня и другие детали реализации могут изменяться в будущем.

Синтаксис

Аргументы

Возвращаемое значение

  • Первый значимый поддомен. String.

Пример

Запрос:

Результат:

firstSignificantSubdomainRFC

Возвращает "первый значимый поддомен". Первый значимый поддомен — это домен второго уровня для com, net, org или co, в противном случае это домен третьего уровня. Например, firstSignificantSubdomain ('https://news.clickhouse.com/') = 'clickhouse', firstSignificantSubdomain ('https://news.clickhouse.com.tr/') = 'clickhouse'. Список "несущественных" доменов второго уровня и другие детали реализации могут изменяться в будущем. Похоже на firstSignficantSubdomain, но соответствует RFC 1034.

Синтаксис

Аргументы

Возвращаемое значение

  • Первый значимый поддомен. String.

Пример

Запрос:

Результат:

cutToFirstSignificantSubdomain

Возвращает часть домена, которая включает верхние уровни поддоменов до "первого значимого поддомена".

Синтаксис

Аргументы

Возвращаемое значение

  • Часть домена, которая включает верхние уровни поддоменов до первого значимого поддомена, если возможно, в противном случае возвращается пустая строка. String.

Пример

Запрос:

Результат:

cutToFirstSignificantSubdomainRFC

Возвращает часть домена, которая включает верхние уровни поддоменов до "первого значимого поддомена". Похоже на cutToFirstSignificantSubdomain, но соответствует RFC 3986.

Синтаксис

Аргументы

Возвращаемое значение

  • Часть домена, которая включает верхние уровни поддоменов до первого значимого поддомена, если возможно, в противном случае возвращается пустая строка. String.

Пример

Запрос:

Результат:

cutToFirstSignificantSubdomainWithWWW

Возвращает часть домена, которая включает верхние уровни поддоменов до "первого значимого поддомена", не удаляя www.

Синтаксис

Аргументы

Возвращаемое значение

  • Часть домена, которая включает верхние уровни поддоменов до первого значимого поддомена (с www), если возможно, в противном случае возвращается пустая строка. String.

Пример

Запрос:

Результат:

cutToFirstSignificantSubdomainWithWWWRFC

Возвращает часть домена, которая включает верхние уровни поддоменов до "первого значимого поддомена", не удаляя www. Похоже на cutToFirstSignificantSubdomainWithWWW, но соответствует RFC 3986.

Синтаксис

Аргументы

Возвращаемое значение

  • Часть домена, которая включает верхние уровни поддоменов до первого значимого поддомена (с "www"), если возможно, в противном случае возвращается пустая строка. String.

Пример

Запрос:

Результат:

cutToFirstSignificantSubdomainCustom

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

Пример конфигурации

Синтаксис

Аргументы

  • url — URL. String.
  • tld — Имя пользовательского списка TLD. String.

Возвращаемое значение

  • Часть домена, которая включает верхние уровни поддоменов до первого значимого поддомена. String.

Пример

Запрос:

Результат:

Смотрите также

cutToFirstSignificantSubdomainCustomRFC

Возвращает часть домена, которая включает верхние уровни поддоменов до первого значимого поддомена. Принимает имя пользовательского списка TLD. Эта функция может быть полезной, если вам нужен новый список TLD или если у вас есть собственный список. Похоже на cutToFirstSignificantSubdomainCustom, но соответствует RFC 3986.

Синтаксис

Аргументы

  • url — URL. String.
  • tld — Имя пользовательского списка TLD. String.

Возвращаемое значение

  • Часть домена, которая включает верхние уровни поддоменов до первого значимого поддомена. String.

Смотрите также

cutToFirstSignificantSubdomainCustomWithWWW

Возвращает часть домена, которая включает верхние уровни поддоменов до первого значимого поддомена без удаления www. Принимает имя пользовательского списка TLD. Может быть полезной, если вам нужен новый список TLD или если у вас есть собственный список.

Пример конфигурации

Синтаксис

Аргументы

  • url — URL. String.
  • tld — Имя пользовательского списка TLD. String.

Возвращаемое значение

  • Часть домена, которая включает верхние уровни поддоменов до первого значимого поддомена без удаления www. String.

Пример

Запрос:

Результат:

Смотрите также

cutToFirstSignificantSubdomainCustomWithWWWRFC

Возвращает часть домена, которая включает верхние уровни поддоменов до первого значимого поддомена без удаления www. Принимает имя пользовательского списка TLD. Может быть полезной, если вам нужен новый список TLD или если у вас есть собственный список. Похоже на cutToFirstSignificantSubdomainCustomWithWWW, но соответствует RFC 3986.

Синтаксис

Аргументы

  • url — URL. String.
  • tld — Имя пользовательского списка TLD. String.

Возвращаемое значение

  • Часть домена, которая включает верхние уровни поддоменов до первого значимого поддомена без удаления www. String.

Смотрите также

firstSignificantSubdomainCustom

Возвращает первый значимый поддомен. Принимает имя пользовательского списка TLD. Может быть полезной, если вам нужен новый список TLD или если у вас есть собственный список.

Пример конфигурации

Синтаксис

Аргументы

  • url — URL. String.
  • tld — Имя пользовательского списка TLD. String.

Возвращаемое значение

  • Первый значимый поддомен. String.

Пример

Запрос:

Результат:

Смотрите также

firstSignificantSubdomainCustomRFC

Возвращает первый значимый поддомен. Принимает имя пользовательского списка TLD. Может быть полезной, если вам нужен новый список TLD или если у вас есть собственный список. Похоже на firstSignificantSubdomainCustom, но соответствует RFC 3986.

Синтаксис

Аргументы

  • url — URL. String.
  • tld — Имя пользовательского списка TLD. String.

Возвращаемое значение

  • Первый значимый поддомен. String.

Смотрите также

port

Возвращает порт или default_port, если в URL отсутствует порт или его невозможно разобрать.

Синтаксис

Аргументы

  • url — URL. String.
  • default_port — Порт по умолчанию, который следует вернуть. UInt16.

Возвращаемое значение

  • Порт или порт по умолчанию, если в URL отсутствует порт или в случае ошибки валидации. UInt16.

Пример

Запрос:

Результат:

portRFC

Возвращает порт или default_port, если в URL отсутствует порт или его невозможно разобрать. Похоже на port, но соответствует RFC 3986.

Синтаксис

Аргументы

  • url — URL. String.
  • default_port — Порт по умолчанию, который следует вернуть. UInt16.

Возвращаемое значение

  • Порт или порт по умолчанию, если в URL отсутствует порт или в случае ошибки валидации. UInt16.

Пример

Запрос:

Результат:

path

Возвращает путь без строки запроса.

Пример: /top/news.html.

pathFull

То же самое, что и выше, но включая строку запроса и фрагмент.

Пример: /top/news.html?page=2#comments.

protocol

Извлекает протокол из URL.

Синтаксис

Аргументы

  • url — URL, из которого извлекается протокол. String.

Возвращаемое значение

  • Протокол или пустая строка, если его невозможно определить. String.

Пример

Запрос:

Результат:

queryString

Возвращает строку запроса без начального знака вопроса, # и всего после #.

Пример: page=1&lr=213.

fragment

Возвращает фрагмент без начального символа хеш.

queryStringAndFragment

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

Пример: page=1#29390.

extractURLParameter(url, name)

Возвращает значение параметра name в URL, если он присутствует, в противном случае возвращается пустая строка. Если есть несколько параметров с этим именем, возвращается первое вхождение. Функция предполагает, что параметр в параметре url закодирован так же, как и в аргументе name.

extractURLParameters(url)

Возвращает массив строк name=value, соответствующих параметрам URL. Значения не декодированы.

extractURLParameterNames(url)

Возвращает массив строк имен, соответствующих именам параметров URL. Значения не декодированы.

URLHierarchy(url)

Возвращает массив, содержащий URL, укороченный в конце символами /,? в пути и строке запроса. Последовательные символы-разделители учитываются как один. Разрезание происходит в позиции после всех последовательных символов-разделителей.

URLPathHierarchy(url)

То же самое, что и выше, но без протокола и хоста в результате. Элемент / (корень) не включен.

encodeURLComponent(url)

Возвращает закодированный URL.

Пример:

decodeURLComponent(url)

Возвращает декодированный URL.

Пример:

encodeURLFormComponent(url)

Возвращает закодированный URL. Соблюдается rfc-1866, пробелы( ) закодированы как плюс(+).

Пример:

decodeURLFormComponent(url)

Возвращает декодированный URL. Соблюдается rfc-1866, простой плюс(+) декодируется как пробел( ).

Пример:

netloc

Извлекает сетевую локальность (username:password@host:port) из URL.

Синтаксис

Аргументы

Возвращаемое значение

  • username:password@host:port. String.

Пример

Запрос:

Результат:

Функции, которые удаляют часть URL

Если у URL нет ничего подобного, URL остается без изменений.

cutWWW

Удаляет ведущий www. (если он присутствует) из домена URL.

cutQueryString

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

cutFragment

Удаляет фрагмент идентификатора, включая знак номер.

cutQueryStringAndFragment

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

cutURLParameter(url, name)

Удаляет параметр name из URL, если он присутствует. Эта функция не кодирует и не декодирует символы в именах параметров, например, Client ID и Client%20ID рассматриваются как разные имена параметров.

Синтаксис

Аргументы

Возвращаемое значение

  • URL с удаленным параметром URL name. Строка.

Пример

Запрос:

Результат: