メインコンテンツまでスキップ
メインコンテンツまでスキップ

URLに関する関数

注記

このセクションに記載されている関数は、最大限のパフォーマンスに最適化されており、ほとんどの場合、RFC-3986標準には準拠していません。RFC-3986を実装する関数には、その関数名の末尾にRFCが付加され、一般的に遅くなります。

一般的に、ユーザー文字列や@記号を含まない公的に登録されたドメインで作業する際には、非RFC関数のバリアントを使用できます。以下の表は、URL内のどの記号がそれぞれのRFCおよび非RFCバリアントによって解析できるか()またはできないか()を詳細に示しています:

Symbolnon-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

「最初の重要なサブドメイン」を返します。 最初の重要なサブドメインは、comnetorg、またはcoの場合はセカンドレベルドメイン、それ以外の場合はサードレベルドメインです。 例えば、firstSignificantSubdomain ('https://news.clickhouse.com/') = 'clickhouse'firstSignificantSubdomain ('https://news.clickhouse.com.tr/') = 'clickhouse'です。 「重要でない」セカンドレベルドメインのリストおよびその他の実装の詳細は、将来的に変更される可能性があります。

構文

引数

返される値

  • 最初の重要なサブドメイン。 String.

クエリ:

結果:

firstSignificantSubdomainRFC

「最初の重要なサブドメイン」を返します。 最初の重要なサブドメインは、comnetorg、またはcoの場合はセカンドレベルドメイン、それ以外の場合はサードレベルドメインです。 例えば、firstSignificantSubdomain ('https://news.clickhouse.com/') = 'clickhouse'firstSignificantSubdomain ('https://news.clickhouse.com.tr/') = 'clickhouse'です。 「重要でない」セカンドレベルドメインのリストおよびその他の実装の詳細は、将来的に変更される可能性があります。 firstSignificantSubdomainに似ていますが、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.

返される値

  • 最初の重要なサブドメインまでの部分を含むドメイン(with www)が可能な場合。そうでない場合は空の文字列。 String.

クエリ:

結果:

関連情報

cutToFirstSignificantSubdomainCustomWithWWWRFC

最初の重要なサブドメインまでのトップレベルサブドメインを含むドメインの部分を返します。 wwwを削除せずに、カスタムTLDリスト名を受け付けます。 新しいTLDリストが必要な場合やカスタムリストがある場合に便利です。 cutToFirstSignificantSubdomainCustomWithWWWに似ていますが、RFC 3986に準拠しています。

構文

引数

  • url — URL。 String.
  • tld — カスタムTLDリスト名。 String.

返される値

  • 最初の重要なサブドメインまでの部分を含むドメイン(with 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

ポートまたは、URLにポートが含まれていないか解析できない場合はdefault_portを返します。

構文

引数

  • url — URL。 String.
  • default_port — 返されるデフォルトポート番号。 UInt16.

返される値

  • ポートまたは、URLにポートがないか、検証エラーが発生した場合はデフォルトポート。 UInt16.

クエリ:

結果:

portRFC

ポートまたは、URLにポートが含まれていない場合や解析できない場合はdefault_portを返します。 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)

URLに存在する場合、nameパラメータの値を返します。それ以外の場合は空の文字列が返されます。 同じ名前の複数のパラメータがある場合、最初の出現が返されます。 関数は、urlパラメータ内のパラメータがname引数と同じ方法でエンコードされていると仮定します。

extractURLParameters(url)

URLパラメータに対応するname=value文字列の配列を返します。 値はデコードされません。

extractURLParameterNames(url)

URLパラメータの名前に対応する名前文字列の配列を返します。 値はデコードされません。

URLHierarchy(url)

URLを含む配列を返し、パスとクエリ文字列の間に/?の記号で切り詰めます。 連続する区切り文字は1つとしてカウントされます。 切り捨ては、連続するすべての区切り文字の後の位置で行われます。

URLPathHierarchy(url)

上記と同じですが、結果にはプロトコルとホストが含まれません。/要素(ルート)は含まれません。

encodeURLComponent(url)

エンコードされたURLを返します。

例:

decodeURLComponent(url)

デコードされたURLを返します。

例:

encodeURLFormComponent(url)

エンコードされたURLを返します。 rfc-1866に従い、スペース( )はプラス(+)としてエンコードされます。

例:

decodeURLFormComponent(url)

デコードされたURLを返します。 rfc-1866に従い、プレーンプラス(+)はスペース( )としてデコードされます。

例:

netloc

URLからネットワークのローカリティ(username:password@host:port)を抽出します。

構文

引数

返される値

  • username:password@host:portString.

クエリ:

結果:

URLの部分を削除する関数

URLに似たものがない場合、URLは変更されずにそのまま残ります。

cutWWW

URLのドメインから先頭のwww.を削除します。

cutQueryString

クエリ文字列を、疑問符を含めて削除します。

cutFragment

フラグメント識別子を、番号記号を含めて削除します。

cutQueryStringAndFragment

クエリ文字列とフラグメント識別子を、疑問符および番号記号を含めて削除します。

cutURLParameter(url, name)

URLから name パラメータを削除します。存在する場合のみ。 この関数は、パラメータ名の文字をエンコードまたはデコードしません。たとえば、Client IDClient%20ID は異なるパラメータ名として扱われます。

構文

引数

  • url — URL。 String
  • name — URLパラメータの名前。 String または Array の Strings。

返される値

  • name URLパラメータが削除されたURL。 String

クエリ:

結果: