≪ Today I learned. RSS購読
公開日
タグ
JavaScript
著者
ダーシノ(@bc_rikko)

URL.parseで文字列をパースする

文字列がURLとして有効かどうかを判定するためURL.parse()がある。

Before #1: try-catch

文字列をチェックするためだけなのに仰々しすぎる。

try {
  const url = new URL('invalid url')
  console.log({ url })
} catch {
  ...
}

Before #2: URL.canParse()

URL.canParse()はBaselineに到達しているため、全主要ブラウザで利用可能。

URL.canParse()が文字列を判定しtrue/falseを返してくれる。

const invalidURL = 'invalid url'
if (URL.canParse(invalidURL)) {
  const url = new URL(invalidURL)
  console.log({ url })
}

After: URL.parse()

URL.parse()を使うと、URL.canParse()new URL()を一度に行うことができる。

※2024-07-21現在、Chrome126、Edge126、Firefox126、Safari TP(18)で利用可能。

const url = URL.parse('invalid url')
console.log({ url })

if (url === null) { // 不正なURL }
if (url instanceof URL) { // パース成功 }