1. 程式人生 > >不用正則,得到url中的HOST,埠,路徑,查詢引數

不用正則,得到url中的HOST,埠,路徑,查詢引數

一般的URL的結構:

[ 協議名 ]:// [ 域名 ] : [ 埠號 ] / [ 路 ] ... [ 徑 ]/ [ 檔名 ] [ 參 ]& [ 數 ] & [ 部 ]& [ 分 ] # [ 錨部分 ]

function parseURL(url){
var urlObj={};
urlObj.scheme = url.substring(0,url.indexOf(":")); //協議頭
var temp1=url.substring(url.indexOf("//")+2); //去掉協議頭後剩下部分
var temp2=temp1.substring(0,temp1.indexOf("/"))//域名+埠號,substring(start,stop) stop要比最後一個提取的字元位置多1
urlObj.domaine = temp2.substring(0,temp1.indexOf(":"));
urlObj.port = temp2.substring(temp1.indexOf(":")+1);

if(temp1.indexOf("?")!=-1){
urlObj.path =temp1.substring(temp1.indexOf("/")+1,temp1.indexOf("?"))//路徑+檔名
emp1.IndexOf("#")!=-1? urlObj.params=temp1.substring(temp1.indexOf("?")+1,temp1.IndexOf("#"))
      :urlObj.params=temp1.substring(temp1.indexOf("?")+1)
}else{
urlObj.path =temp1.substring(temp1.indexOf("/")+1);
}
urlObj.fragment=temp1.substring(temp1.indexOf("#")+1);
return urlObj;
}

測試如下(url是隨便找的):