コンテンツにスキップ
Zenn Dev Snowcait Articles Cb3cb764658100

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

  • URL: https://zenn.dev/snowcait/articles/cb3cb764658100
  • 日付: 2026-06-26
  • Tier: Tier 3
  • 要旨: URL の有効性をチェックする際に従来は new URL() の例外を try-catch で処理する必要があったが、URL.canParse() という静的メソッドが主要ブラウザに追加された。古いブラウザ向けには同等の動作を提供する Polyfill を hooks などの初期ロードファイルに実装しておくことが推奨される。

詳細

URL.canParse() メソッドの解説と Polyfill 実装

  • 従来の課題: new URL(invalidString) は例外を投げるため、URLの有効性チェックには try-catch が必要だった
  • URL.canParse(): ブール値を返す静的メソッド。主要最新ブラウザでは使用可能
  • Polyfill 実装例: if (!URL.canParse) { URL.canParse = (url, base) => { try { new URL(url, base); return true; } catch { return false; } }; }
  • SvelteKit での実装場所: hooks ファイルが推奨(アプリ起動時の早い段階で読み込まれるため)
  • 判定式の注意: if (‘canParse’ in URL === false) も動作するが、エディタによっては赤線が引かれる。!URL.canParse の方が実用的
  • 代替手段: core-js など Polyfill 対応ライブラリの導入も選択肢