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

    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) { // パース成功 }