1. ホーム
  2. javascript

[解決済み] jQuery / Javascriptでクエリストリングパラメータのurl値を取得する(querystring)。

2022-04-21 12:31:42

質問

クエリ文字列パラメータを処理するためのjQueryエクステンションを書く良い方法を知っている人はいますか?私は基本的にjQueryの魔法を拡張したいです ($) 関数で、こんなことができるようになります。

$('?search').val(); 

そうすると、以下のURLに "test"という値が得られます。 http://www.example.com/index.php?search=test .

jQueryやJavascriptでこのようなことができる関数をたくさん見てきましたが、実はjQueryを拡張して上の図のように正確に動作させたいと考えています。私はjQueryプラグインを探しているのではなく、jQueryメソッドの拡張を探しているのです。

どのように解決するのですか?

長年にわたる醜い文字列解析の末に、より良い方法があります。 URLSearchParams この新しいAPIを使って、どのように位置情報から値を取得するのか見てみましょう

//Assuming URL has "?post=1234&action=edit"

var urlParams = new URLSearchParams(window.location.search);
console.log(urlParams.has('post')); // true
console.log(urlParams.get('action')); // "edit"
console.log(urlParams.getAll('action')); // ["edit"]
console.log(urlParams.toString()); // "?post=1234&action=edit"
console.log(urlParams.append('active', '1')); // "?

post=1234&action=edit&active=1"

UPDATE : IEはサポートされていません

からこの関数を使用します。 以下、回答 の代わりに URLSearchParams

$.urlParam = function (name) {
    var results = new RegExp('[\?&]' + name + '=([^&#]*)')
                      .exec(window.location.search);

    return (results !== null) ? results[1] || 0 : false;
}

console.log($.urlParam('action')); //edit