window.location.searchを使ってGETパラメータを取得

2024-04-02

JavaScriptでGETパラメータの値を取得する方法

JavaScriptを使って、URLに含まれるGETパラメータの値を取得する方法について解説します。

GETパラメータとは

URLに "?" 記号の後に続く、キーと値のペアで構成される情報です。複数のキーと値のペアは"&" 記号で区切られます。

https://example.com/?param1=value1&param2=value2

上記の例では、

  • param1 の値は value1

となります。

取得方法

いくつかの方法がありますが、代表的なものを紹介します。

URLSearchParams

URLSearchParams オブジェクトを使用する方法です。

const urlSearchParams = new URLSearchParams(window.location.search);
const param1Value = urlSearchParams.get('param1');
const param2Value = urlSearchParams.get('param2');

console.log(param1Value); // "value1"
console.log(param2Value); // "value2"

window.location.search

window.location.search プロパティを使用する方法です。

const searchParams = window.location.search;
const param1Value = searchParams.match(/param1=([^&]*)/)[1];
const param2Value = searchParams.match(/param2=([^&]*)/)[1];

console.log(param1Value); // "value1"
console.log(param2Value); // "value2"

クエリ文字列を直接パースする方法です。

const params = {};
const searchParams = window.location.search;
searchParams.replace(/^\?/, '').split('&').forEach((param) => {
  const [key, value] = param.split('=');
  params[key] = value;
});

const param1Value = params['param1'];
const param2Value = params['param2'];

console.log(param1Value); // "value1"
console.log(param2Value); // "value2"

補足

  • 上記のコードは、URLエンコードされた文字列をデコードする必要があります。



HTML

<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>GETパラメータの値を取得</title>
</head>
<body>
  <p>URL: <a href="index.html?param1=value1&param2=value2">index.html?param1=value1&param2=value2</a></p>
  <p>param1: <span id="param1"></span></p>
  <p>param2: <span id="param2"></span></p>
  <script src="script.js"></script>
</body>
</html>

JavaScript

const param1Element = document.getElementById('param1');
const param2Element = document.getElementById('param2');

const urlSearchParams = new URLSearchParams(window.location.search);
const param1Value = urlSearchParams.get('param1');
const param2Value = urlSearchParams.get('param2');

param1Element.textContent = param1Value;
param2Element.textContent = param2Value;

実行結果

上記のコードを実行すると、ブラウザに以下のように表示されます。

<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>GETパラメータの値を取得</title>
</head>
<body>
  <p>URL: <a href="index.html?param1=value1&param2=value2">index.html?param1=value1&param2=value2</a></p>
  <p>param1: value1</p>
  <p>param2: value2</p>
  <script src="script.js"></script>
</body>
</html>

解説

  • HTMLファイルでは、index.html?param1=value1&param2=value2というURLをリンクとして記述しています。
  • JavaScriptファイルでは、URLSearchParamsオブジェクトを使用して、URLに含まれるGETパラメータの値を取得しています。
  • 取得した値は、param1Elementparam2Element要素に表示されています。

上記のコード以外にも、window.location.searchプロパティや、クエリ文字列を直接パースする方法など、さまざまな方法でGETパラメータの値を取得することができます。




GETパラメータの値を取得するその他の方法

const searchParams = window.location.search;
const param1Value = searchParams.match(/param1=([^&]*)/)[1];
const param2Value = searchParams.match(/param2=([^&]*)/)[1];

console.log(param1Value); // "value1"
console.log(param2Value); // "value2"
  • クエリ文字列を正規表現でパースし、パラメータの値を取得します。
const params = {};
const searchParams = window.location.search;
searchParams.replace(/^\?/, '').split('&').forEach((param) => {
  const [key, value] = param.split('=');
  params[key] = value;
});

const param1Value = params['param1'];
const param2Value = params['param2'];

console.log(param1Value); // "value1"
console.log(param2Value); // "value2"
  • クエリ文字列を ? 記号で分割し、キーと値のペアを取得します。
  • キーと値のペアをオブジェクトに格納します。
  • オブジェクトからパラメータの値を取得します。
const urlSearchParams = new URLSearchParams(window.location.search);
const param1Value = urlSearchParams.get('param1');
const param2Value = urlSearchParams.get('param2');

console.log(param1Value); // "value1"
console.log(param2Value); // "value2"
  • URLSearchParamsオブジェクトを使用して、URLのクエリ文字列をパースします。
  • get()メソッドを使用して、パラメータの値を取得します。

上記以外にも、さまざまな方法でGETパラメータの値を取得することができます。

  • ライブラリを使用する
  • 自作の関数を作成する

javascript url url-parameters


【徹底解説】JavaScriptで配列に値が含まれているかどうかを確認する方法!メリット・デメリットと使い分け

概要:includes() メソッドは、配列内に指定された値が存在するかどうかを調べ、存在する場合は true 、存在しない場合は false を返します。例:メリット:シンプルで分かりやすい配列内の要素の順序を考慮しない比較的新しいメソッドなので、多くのブラウザでサポートされている...


JavaScript、Node.js での "use strict" ステートメント: 完全ガイド

この解説では、JavaScript、Node. js、および "use strict" ステートメントについて分かりやすく説明します。さらに、Node. js における "use strict" ステートメントの解釈方法についても詳細に解説します。...


React.js - input losing focus when rerendering

React. jsで、入力欄にフォーカスを当てている状態で、コンポーネントの再レンダリングが発生すると、フォーカスが失われることがあります。これは、React. jsがDOMを更新する際に、フォーカス状態を保持しないためです。原因この問題にはいくつかの原因が考えられます。...


【初心者向け】JavaScriptとjQueryでベースURLを取得:分かりやすく解説

Web ページのベース URL は、現在のページの プロトコル、ホスト名、ポート、および パス を含む URL です。これは、相対パスを使用して静的ファイルや他のリソースへのリンクを作成する際に役立ちます。JavaScript でベース URL を取得するには、次のいずれかの方法を使用できます。...


もう迷わない!React.jsの{this.props.children}を使いこなしてコードをスッキリさせよう

{this. props. children} は、親コンポーネントの開始タグと終了タグの間に記述されたすべての要素を指します。例えば、以下のようなコードの場合:このコードでは、ParentComponent は ChildComponent に <h1>子コンポーネント</h1> と <p>This is some text...


SQL SQL SQL SQL Amazon で見る



JavaScript クロージャーの仕組みを徹底解説! 3つのスコープとメモリリークへの対策

JavaScriptでは、関数内にある変数は、その関数内でしかアクセスできません。しかし、クロージャーを使用すると、関数内にある変数を、関数外からでもアクセスすることができます。これは、関数内にある変数が、関数オブジェクトの一部として保持されるためです。つまり、関数が実行された後も、その変数はメモリに残っているのです。


Object.defineProperty() メソッドを使って JavaScript オブジェクトからプロパティを削除する方法

delete 演算子を使用する最も簡単な方法は、delete 演算子を使用することです。 構文は以下の通りです。例えば、以下のオブジェクトから name プロパティを削除するには、次のように記述します。Object. defineProperty() メソッドを使用して、プロパティの configurable 属性を false に設定することで、プロパティを削除不可にすることができます。


迷ったらコレ!JavaScriptで文字列をbool値に変換するベストプラクティス

二重否定(!!)を使うこれは最も簡単な方法です。文字列の前に2つの否定記号(!!)を付けることで、文字列をブール値に変換できます。Boolean関数は、引数に与えられた値をブール値に変換します。比較演算子を使う文字列を空文字列("")と比較することで、ブール値に変換できます。


encodeURI()関数とencodeURIComponent()関数の違い

JavaScriptでURLエンコードを行うには、主に以下の3つの方法があります。encodeURI() 関数は、URL全体をエンコードします。URLSearchParams クラスは、URLのパラメータをエンコードする際に便利です。注意点


URLSearchParamsを使ってURLのクエリ文字列から値を取得する方法

URLのクエリ文字列は、"?""の後に続く文字列で、パラメータと値のペアを("&"で区切って記述します。この文字列から値を取得するには、いくつかの方法があります。方法URLSearchParamsは、URLのクエリ文字列を操作するためのオブジェクトです。


location.protocol、location.host、location.pathnameでURLを分解する

最も簡単な方法は、location. href プロパティを使うことです。これは、現在のページの完全なURLを返します。より細かい制御が必要な場合は、location. protocol、location. host、location. pathname などのプロパティを個別に使うことができます。


【徹底解説】JavaScriptでselectボックスの選択された値を取得する5つの方法

最も簡単な方法は、selectedIndexプロパティを使うことです。このプロパティは、選択されているオプションのインデックス番号を返します。selectedOptionsプロパティは、選択されているオプションの配列を返します。changeイベントを使うと、ユーザーがドロップダウンリストの値を変更したときにイベントが発生します。


JavaScriptでオブジェクトの配列を文字列プロパティ値に基づいてソートする方法

JavaScriptでオブジェクトの配列を文字列プロパティ値に基づいてソートするには、いくつかの方法があります。sort() メソッドArray. prototype. sort() メソッド比較関数方法この方法は、オブジェクトの配列を直接ソートする最も簡単な方法です。


JavaScriptの未来を先取り!厳格モードでモダンなコードを書く

「use strict」を使用する主な理由は次のとおりです。コードの品質向上: 潜在的なバグやエラーを早期に発見しやすくなります。より安全なコード: 意図しない動作を防ぎ、セキュリティ上の脆弱性を軽減できます。将来性: 将来のバージョンのJavaScriptでは、厳格モードがデフォルトになる可能性があります。


パフォーマンスアップ!JavaScript 配列から要素を効率的に削除する方法

splice() メソッドを使うこれは最も一般的で、柔軟な方法です。splice() メソッドは、配列の要素を追加、削除、置き換えることができます。引数 start: 削除を開始するインデックス deleteCount: 削除する要素の数