JavaScriptでURL文字列からホスト名を抽出する方法
URL文字列からホスト名(ドメイン部分)を抽出するには、JavaScriptのsplit()メソッドを活用するのが便利です。ここでは、実際のコード例とともにその手順をわかりやすく解説します。
コード例
function gettingTheHostNameFromURL(websiteURL) {
var getTheHostName;
if (websiteURL.indexOf("//") > -1) {
getTheHostName = websiteURL.split('/')[2];
} else {
getTheHostName = websiteURL.split('/')[0];
}
getTheHostName = getTheHostName.split(':')[0];
getTheHostName = getTheHostName.split('?')[0];
return getTheHostName;
}
var websiteURL = "https://www.tutorialspoint.com/java/index.htm";
var websiteURL1 = "https://www.tutorix.com/about_us.htm";
var websiteURL2 = "https://www.tutorialspoint.com/execute_python_online.php";
console.log(gettingTheHostNameFromURL(websiteURL));
console.log(gettingTheHostNameFromURL(websiteURL1));
console.log(gettingTheHostNameFromURL(websiteURL2));コードの仕組み
- まず、URLに「//」が含まれているかどうかを確認します。「https://」のようにプロトコルが含まれる場合は、「/」で分割した3番目の要素(インデックス2)がホスト名になります。
- 「//」が含まれていない場合は、分割後の最初の要素(インデックス0)がそのままホスト名となります。
- 続いて、「:」で分割することでポート番号を除去し、「?」で分割することでクエリ文字列も取り除きます。これにより、純粋なホスト名だけを取得できます。
プログラムの実行方法
上記のプログラムを実行するには、Node.js環境で以下のコマンドを使用します。
node fileName.js
実行結果
ここでは、ファイル名を「demo161.js」としています。このプログラムを実行すると、以下のような出力が得られます。
PS C:\Users\Amit\JavaScript-code> node demo161.js www.tutorialspoint.com www.tutorix.com www.tutorialspoint.com
このように、split()メソッドを組み合わせることで、プロトコルやパス、ポート番号、クエリ文字列が含まれるURLからでも、簡単にホスト名のみを抽出することができます。
-
JavaScriptで文字列内の空白を「%20」に変換する方法
Web上のURLにスペースが含まれている場合、ブラウザは自動的にすべての半角スペースを「%20」という文字列に置き換えます。本記事では、文字列を第一引数(唯一の引数)として受け取り、文字列中の空白があった位置をすべて「%20」に置き換えた新しい文字列を生成して返すJavaScript関数を作成します。問題の例たとえば、入力文字列が次の場合:const str = some extra Space;期待される出力は以下のとおりです。const output = some%20extra%20%20Space;「extra」と「Space」の間には元々2つ連続した空白があるため、出力では「%20%
-
Pythonで文字列から数字を抽出する方法【isdigitと正規表現の使い分け】
正の整数だけを抽出するシンプルな方法文字列に含まれる正の整数だけを取り出したい場合は、split()で空白ごとに文字列を分割し、isdigit()で各要素が数字のみで構成されているかを判定する方法が手軽です。>>> s = h3110 23 cat 444.4 rabbit 11 2 dog >>> [int(x) for x in s.split() if x.isdigit()] [23, 11, 2]この方法では、すべてが数字で構成された要素だけが整数に変換されてリストに追加されます。そのため「h3110」のように文字と数字が混ざった語句や、「444.