function Serializeurl(str) {varparam = {}, hash ={}, anchor; varurl = str | |Location.href; vararr =/([^?] *)([^#]*)(.*)/. exec (URL); varAR1 =/(. *:)? (?: \ /?\/?) ([\.\w]*) (: \d*)? (.*?) ([^\/]*) $/.exec (arr[1]); varAR2 = Arr[2].match (/[^?&=]*=[^?&=]*/g); varAR3 = Arr[3].match (/[^#&=]*=[^#&=]*/g); if(AR2) { for(vari = 0, L = ar2.length; I < L; i++){ varAr22 =/([^=]*) (?: =*) (. *)/. EXEC (Ar2[i]); param[ar22[1]] = ar22[2]; } } if(AR3) { for(vari = 0, L = ar3.length; I < L; i++){ varAr33 =/([^=]*) (?: =*) (. *)/. EXEC (Ar3[i]); hash[ar33[1]] = ar33[2]; } } if(Arr[3] &&!/[=&]/g.test (arr[3]) {anchor= Arr[3]; } functionGetUrl () {varthat = This, url = [], param = [], hash = []; Url.push (That.protocol, That.protocol&& '//' | | ‘‘, That.host, That.port, That.path, that.file); for(varPinchThat.param) {Param.push (P+ ' = ' +that.param[p]); } for(varPinchThat.hash) {Hash.push (P+ ' = ' +that.hash[p]); } url.push (Param.length&& '? ' + param.join (' & ') | | ‘‘); if(That.anchor) {Url.push (that.anchor); }Else{Url.push (hash.length&& ' # ' + hash.join (' & ') | | ‘‘); } returnUrl.join (' '); } return{href:arr[0], protocol:ar1[1], host:ar1[2], Port: (ar1[3] | | ‘‘), path:ar1[4], file:ar1[5], Param:param, Hash:hash, Anchor:anchor, Geturl:geturl};};
Example:
Serializeurl (' http://www.baidu.com:80/fuwu_bone/html/orderlist.html?a=1&b=2#c=3 ')
return Result:
{
"href": "Http://www.baidu.com:80/fuwu_bone/html/orderlist.html?a=1&b=2#c=3",
"Protocol": "Http://www.baidu.com:",
"Host": "80",
"Port": "",
"Path": "/fuwu_bone/html/",
"File": "Orderlist.html",
"param": {
"A": "1",
"B": "2"
},
"Hash": {
"C": "3"
}
}
JS Serialization URL Method