URL: canParse() 静的メソッド
Baseline 2023
Newly available
Since December 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.
URL.canParse()
は URL
の静的メソッドで、絶対 URL、またはベース URL と結合した相対 URL が解析可能で有効かどうかを示す論理値を返します。
これは URL
を try...catch ブロック内で組み立てるための高速で簡単な代替手段です。
これは URL()
コンストラクターが成功するのと同じ値に対しては true
を返し、コンストラクターが例外を発生させる値に対しては false
を返します。
構文
URL.canParse(url)
URL.canParse(url, base)
引数
返値
その URL が解釈可能で有効であれば true
、そうでなければ false
を返します。
例
このライブ例では、静的メソッド URL.canParse()
を使用して、いくつか異なる絶対 URL 値と相対 URL 値を使用する方法を示します。
例の最初の部分では、ログ出力先の HTML 要素 <pre>
とログ出力するメソッド log()
を定義しています。
<pre id="log"></pre>
const logElement = document.getElementById("log");
function log(text) {
logElement.innerText += `${text}\n`;
}
次に、URL.canParse()
メソッドに対応しているかどうかを、"canParse" in URL
という条件を用いて調べます。
メソッドが対応している場合は、絶対 URL、ベース URLのない相対 URL、有効なベース URL のある相対 URL を調べた結果をログ出力します。
URL.canParse()
が対応していない場合もログ出力します。
if ("canParse" in URL) {
log("有効な絶対 URL を検査");
let url = "https://developer.mozilla.org/";
let result = URL.canParse(url);
log(` URL.canParse("${url}"): ${result}`);
log("\nベース URL のない相対 URL を検査");
url = "/ja/docs";
result = URL.canParse(url);
log(` URL.canParse("${url}"): ${result}`);
log("\n有効なベース URL のある相対 URL を検査");
let baseUrl = "https://developer.mozilla.org/";
result = URL.canParse(url, baseUrl);
log(` URL.canParse("${url}","${baseUrl}"): ${result}`);
} else {
log("URL.canParse() に対応していません");
}
最後に、下記のコードは baseUrl
が文字列である必要はないことを示しています。
ここでは URL
オブジェクトを渡しています。
if ("canParse" in URL) {
log("\nURL オブジェクトとして提供されたベース URL つきの相対 URL を検査");
let baseUrl = new URL("https://developer.mozilla.org/");
let url = "/ja/docs";
result = URL.canParse(url, baseUrl);
log(` URL.canParse("${url}","${baseUrl}"): ${result}`);
}
それぞれのチェック結果を下記に示します。
仕様書
Specification |
---|
URL Standard # dom-url-canparse |
ブラウザーの互換性
BCD tables only load in the browser
関連情報
URL()
URL.canParse()
のポリフィルがcore-js
で利用できます