將http: //www.a.com/admin/index.php#route=main/nav&user=tom&id=123/profile
后的參數(shù)轉(zhuǎn)換成:
[ {"router":"main"}, { "nav":"", "user":"tom", "id":"123" }, {"profile":""} ]
除了循環(huán)變量有沒有更簡潔的方法
擁有18年軟件開發(fā)和IT教學(xué)經(jīng)驗。曾任多家上市公司技術(shù)總監(jiān)、架構(gòu)師、項目經(jīng)理、高級軟件工程師等職務(wù)。 網(wǎng)絡(luò)人氣名人講師,...
var?url?=?'http:?//www.a.com/admin/index.php?route=main/nav=&user=tom&id=123/profile', ????result?=?[]; url.substring(url.indexOf('?')?+?1) ????.replace(/[^\/]+/g,?function(objstr)?{ ????????var?obj?=?{}, ????????????empty?=?false; ????????objstr.replace(/([^\/&=]+)(=([^\/&=]+)?)?/g,?function(s,?a,?b,?c)?{ ????????????if(a?&&?b?&&?c){ ????????????????obj[a]?=?c; ????????????}else?if(a?&&?!c){ ????????????????obj[a]?=?''; ????????????}else{ ????????????????empty?=?true; ????????????} ????????}); ????????if(!empty){ ????????????result.push(obj); ????????} ????}); console.log(result);
var?url?=?location.search.substr(1); ????param?=?{}; console.log(url); url.replace(/([^?&]+)=([^?&]+)/g,?function(s,?v,?k)?{ ????param[v]?=?decodeURIComponent(k); ????return?k?+?'='?+??v; }); console.log(param);
坐等更好方案:
'use?strict'; var?url?=?'http:?//www.a.com/index.php?route=main&nav&user=tom&id=123&profile'; var?querys?=?url ????.substring(url.indexOf('?')?+?1) ????.split('&') ????.map((query)?=>?query.split('=')) ????.reduce((params,?pairs)?=>?(params[pairs[0]]?=?pairs[1]?||?'',?params),?{}); console.log(querys); //{?route:?'main',?nav:?'',?user:?'tom',?id:?'123',?profile:?''?}