一:需求:
获取 url 中的参数
- 指定参数名称,返回该参数的值 或者 空字符串
- 不指定参数名称,返回全部的参数对象 或者 {}
- 如果存在多个同名参数,则返回数组
function getUrlParam(sUrl,sKey){
var result = {};
sUrl.replace(/\??(\w+)=(\w+)&?/g,function(a,k,v){
if(result[k] !== void 0){
var t = result[k];
result[k] = [].concat(t,v);
}else{
result[k] = v;
}
});
if(sKey === void 0){
return result;
}else{
return result[sKey] || '';
}
}
二:传指定key,返回value
getUrlParams(val){
var key = val
var url = '192.168.0.240:8080/smartcafetril/banpai/index.html#/login?id=8&name=name&age=1'
if(url.indexOf('?') == -1 || url.indexOf(val + '=') == -1){
return ''
}
//substring作用:返回指定位置之后的字符串
var queringStr = url.substring(url.indexOf('?') + 1)
var keyValArr = queringStr.split('&')
// console.log(keyValArr,'keyValArr---------------keyValArr')
var keyname,keyVal,pos;
for(var i = 0; i < keyValArr.length; i++){
// 获取'='的位置
pos = keyValArr[i].indexOf('=')
// 如果查找'='的位置返回-1,则跳过此次循环
if(pos == -1) {
continue
}
keyname = keyValArr[i].substring(0,pos)//一个参数则返回位置后的字符串;两个参数则返回两个位置中间的字符串
keyVal = keyValArr[i].substring(pos + 1)//从等于号后一位开始截取,返回截取的字符串
// console.log(keyname,'keyname---------------keyname')
if(keyname == key) {
return keyVal
}
}
return ''
}