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

b> url-canparse

JavaScript において URL が有効かどうか判定するために、[URL コンストラクター](https://developer.mozilla.org/ja/docs/Web/API/URL/URL) を使用する方法がよく知られています。

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

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

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

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

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

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

```js
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` を返します。
  