Last active
August 29, 2015 14:02
-
-
Save takunagai/5eb950ce0176fe287da1 to your computer and use it in GitHub Desktop.
URLからクエリを取得し、オブジェクトに格納
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* URLからクエリを取得し、オブジェクトに格納 | |
* | |
* @param {String} url クエリ付きのURL | |
* @param {Boolian} setEmptyKeys 空のパラメーターを表示するか(省略でfalse) | |
* https://gist.github.com/oreo3/76595108a85ae4d6883a | |
*/ | |
var urlQueryToHash = function (url,setEmptyKeys) { | |
var paramsHash = {};//データを格納するハッシュ | |
var queryString = url.replace(/^[^\?]+\??/, '');//URLの?以降を格納 | |
//クエリがなければ空オブジェクトを返す、クエリがあれば処理 | |
if (!queryString){ return paramsHash; } | |
else { | |
var pairs = queryString.split(/[;&]/); | |
for (var i=0, len=pairs.length ; i < len ; i++) { | |
var pair = pairs[i].split('='); | |
if(!pair || pair.length !== 2){ continue; }//A=Bでなければ無視して次のパラメータを処理 | |
if(setEmptyKeys === true){ if(!pair[1]){ continue; } }//第二匹数が真なら、値が空のパラメータは処理飛ばす | |
var key = decodeURIComponent(pair[0]); | |
var val = decodeURIComponent(pair[1]); | |
paramsHash[key] = val.replace(/\+/g, ' ');//値の + をスペースに変換、ハッシュに格納 | |
} | |
return paramsHash; | |
} | |
}; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment