質問質問質問質問質問質問質問質問質問質問質問質問質問質問質問
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答1件
0
ベストアンサー
※既存の別パラメーターは削除不可
IE 以外で良いなら location.query
を処理できそうですよ。
MDN URLSearchParams
IEでは 文字列 オブジェクトの相互変換を考える必要があります。
?param=value¶m2=value2&...
のようなフォーマットは
paramN
, valueN
部分が URL 用にエンコードされているものとして考える。
コードスニペットは次のような感じでしょうか。
javascript
1function parseQueryString ( qs ) { 2 var rslt = {}; 3 var pairs = qs.substring(1).split("&"); 4 for( var i=0,l=pairs.length; i<l; ++i ) { 5 pair = pairs[i].split("="); 6 rslt[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]); 7 } 8 return rslt 9} 10 11function stringifyQueryString ( oj ) { 12 var rslt = []; 13 for( var key in oj ) { 14 rslt.push( encodeURIComponent(key) + "=" + encodeURIComponent(oj[key]) ); 15 } 16 return "?" + (rslt.join("&")); 17}
注意点は
- input[type=checkbox]のような keyが重複されるケースには対応していません
- デバッグしてません
ご質問にある hoge.com?test
のような =
がないパターンにも対応していませんが、それぞれの for ループ内を弄れば対応できるのではないでしょうか。
投稿2020/03/20 10:37
編集2020/03/20 11:58総合スコア5434
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2020/03/20 11:20
2020/03/20 11:44
退会済みユーザー
2020/03/20 13:34