URLの指定クエリの値を取得する
// URLパラメータ文字列を取得する
var param = location.search
alert(param) // 「?lib=jquery&ver=3」が出力
上記から指定したクエリの値だけを取得するコード。
alert(getParam('lib'));
alert(getParam('ver'));
function getParam(name, url) {
if (!url) url = window.location.href;
name = name.replace(/[\[\]]/g, "\\$&");
var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
results = regex.exec(url);
if (!results) return null;
if (!results[2]) return '';
return decodeURIComponent(results[2].replace(/\+/g, " "));
}
補足
name = name.replace(/[\[\]]/g, "\\$&");
で、
Uncaught TypeError: Cannot read property 'replace' of undefined
エラーが出るときは、getParamのパラメータの渡し方を確認する。
自分の場合、引数の渡し方が間違っていた。
取得したいクエリ名を文字列として渡していなかったため、上記エラーが出た。
(getParam(id,.. と渡していた)
getParam('id',...と修正することで解決。