勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ

フォームに入力された値をJavaScriptのURLコンストラクタ(パーサー)でURL形式かチェックする方法

  JavaScript

フォームのテキストボックスに入力された値がURL形式になっているかチェックしたかった。実際に存在するURLかどうかのチェックは不要。それ用の正規表現サンプル的なものを調べようとしたところ、JavaScriptのURLコンストラクタ(パーサー)を用いればもっとシンプルに実装できるみたい。以下に対応方法をメモ。

 

対応方法

ソースコード

console.log(validateUrl(`https://www.google.com`)); //true
console.log(validateUrl(`https://www.google`)); //true
console.log(validateUrl(`google`)); //false

function validateUrl( url ){
    try{
        new URL(url);
        return true;
    }catch(e){
        return false;
    }
}

注意点

ソースコードのコメントの通り「https://www.google」でもtrueが返る。あくまでも指定の値がURLとして構文的にパースできるかどうかをチェックしているため「http(s)://xxxx.xxxx」形式だとtrueが返る点に注意。

 

リファレンス

URL: URL() コンストラクター

https://developer.mozilla.org/ja/docs/Web/API/URL/URL

 - JavaScript

  関連記事

Push.jsを用いてプッシュ通知を実装&Web Audio APIで通知音も鳴らす方法
Push.jsを用いてプッシュ通知を実装&Web Audio APIで通知音も鳴らす方法

プッシュ通知(デスクトップ通知)を実装してみたい。また、通知の際は分かりやすいよ ...

JavaScript / jQueryにてページ表示時に指定したテキストボックスにフォーカスさせる方法
JavaScript / jQueryにてページ表示時に指定したテキストボックスにフォーカスさせる方法

ページを開いた際に指定したテキストボックス(input type="text") ...

エリア→都道府県→路線→駅名を連携する絞り込みセレクトメニューの設置方法
エリア→都道府県→路線→駅名を連携する絞り込みセレクトメニューの設置方法

エリア→都道府県→路線→駅名のドリルダウン検索をプルダウン形式で設置したい。以前 ...

Leafletでマーカーを動的に変更し、変更状況をCookieに保存する方法
Leafletでマーカーを動的に変更し、変更状況をCookieに保存する方法

Leafletでポップアップ(フキダシ)内のボタンをクリックするとマーカーを動的 ...

reCAPTCHA v2でAjaxは使わずにチェック状況を確認する方法
reCAPTCHA v2でAjaxは使わずにチェック状況を確認する方法

reCAPTCHA v2を実装する案件があり以前の記事を参考に組み込んでみたもの ...