勉強したことのメモ

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

  関連記事

JavaScriptでURLのクエリを取得する2
JavaScriptでURLのクエリを取得する2

直近で調べたのとは別に、 http://aaa.bbb/ccc/id123?te ...

JavaScriptで配列やオブジェクトの値を検索する方法
JavaScriptで配列やオブジェクトの値を検索する方法

JavaScriptにて配列やオブジェクトの値を検索する際、今までだとループを回 ...

javascriptでHTML内に関数を書きたい場合
javascriptでHTML内に関数を書きたい場合

ダイアログ確認したいだけでわざわざfunctionを書くのもアレだという時に使い ...

jQueryで偶数or奇数行に任意のClassを付与する方法
jQueryで偶数or奇数行に任意のClassを付与する方法

tableタグの1行目を除く偶数もしくは奇数行のtrタグに任意にClassを指定 ...

日付の範囲指定用プラグイン「DateRangePicker」の利用方法
日付の範囲指定用プラグイン「DateRangePicker」の利用方法

日付型のデータを検索する際に開始・終了日のテキストボックスを用意し、それぞれにタ ...