wakame-soup 19332

URL が有効かどうかを判定する `URL.canParse()` メソッド

`URL.canParse()` メソッドは与えられた URL 文字列が有効であるかどうかを判定します。URL 文字列が有効であれば `true` を、無効であれば `false` を返します。これは URL コンストラクターを用いた `try...catch` 文による判定よりも簡潔に記述できます。

URL.canParse() メソッドは 2023 年 10 月 15 日現在 Firefox 115、Safari 17 以降でのみ利用可能です。

JavaScript において URL が有効かどうか判定するために、URL コンストラクター を使用する方法がよく知られています。

URL コンストラクターは与えられた URL 文字列が有効でなければ例外をスローします。このため、例外がスローされない場合は URL 文字列が有効であることが保証されます。

function isValidURL(url) {
  try {
    new URL(url);
    return true;
  } catch {
    return false;
  }
}

しかしながらこの方法は少々冗長です。より簡潔な方法として、URL.canParse() メソッドが提供されています。

function isValidURL(url) {
  return URL.canParse(url);
}

URL.canParse() メソッドの仕様

URL.canParse() メソッドは与えられた URL 文字列が有効であるかどうかを判定します。URL 文字列が有効であれば true を、無効であれば false を返します。

URL.canParse("https://example.com"); // true
URL.canParse("https://example.com/"); // true
URL.canParse("https://example.com/?foo=bar"); // true
URL.canParse("https://example.com/#foo"); // true
URL.canParse("hoge"); // false
 
URL.canParse(new URL("https://example.com")); // URL オブジェクトも受け付ける
 
// 相対 URL の場合、第 2 引数に基底 URL を指定する必要がある
URL.canParse("/foo", "https://example.com"); // true

URL が有効かどうかの判定方法は、URL コンストラクターと同様です。URL 文字列が有効であれば true を、無効であれば false を返します。


Contributors

> GitHub で修正を提案する
この記事をシェアする
はてなブックマークに追加

関連記事