代码:
/*
@desc:url解析函数
@author []
@param url 要查询的url
@return ret 解析后的对象
*/
function parseurl(url){
var reg = /(?:([A-Za-z]+):)?(\/{0,3})?(?:(.*):(.*)@)?([0-9.\-A-Za-z]+)(?::(\d+))?(?:\/([^?#]*))?(?:\?([^#]*))?(?:#(.*))?/
var res = reg.exec(url)
var scheme = (res[1])?res[1]:'http'
var user = (res[3])?res[3]:''
var pass = (res[4])?res[4]:''
var host = (res[5])?res[5]:''
var port = (res[6])?res[6]:''
var path = (res[7])?res[7]:''
var query = (res[8])?res[8]:''
var fragment = (res[9])?res[9]:''
var ret = {
scheme:scheme,
user:user,
pass:pass,
host:host,
port:port,
path:path,
query:query,
fragment:fragment
}
return ret
}
测试:
var url = "https://user:pass@www.baidu.com:80/a/b/?name=lee&sex=male#id";
var ret = parseurl(url)
console.log(ret)