一、获取 URL 中的参数,转为对象
function getUrlParams (url) {
var index = url.indexOf('?') + 1;
var paramsArr = url.substr(index).split('&');
var obj = {};
paramsArr.forEach(function (value, index1, array) {
var tempArr = value.split('=');
var key = tempArr[0];
obj[key] = tempArr[1];
})
return obj;
}
var str = 'http://www.runoob.com/user?name=xl&pwd=love&sex=女&age=22';
var object = getUrlParams(str);
console.log(object);
function getUrlParams () {
var url = window.location.href;
var args = url.split('?');
if (args[0] == url) {
return "";
}
var arr = args[1].split('&');
var obj = {};
for (var i = 0; i < arr.length; i++) {
var arg = arr[i].split('=');
obj[arg[0]] = arg[1];
}
return obj;
}
var object = getUrlParams();
console.log(object);
二、将对象转为 URL 参数
方式一:正则替换
先将对象转为字符串,利用正则表达式将:
转换为=
,将"
转换为空,将,
转换为&
,再去掉两端的{}
。
function getURL (obj) {
var str = JSON.stringify(obj);
var str1 = str.replace(/:/g, "="); // 使用=代替:
var str2 = str1.replace(/"/g, ''); // 去掉"
var str3 = str2.replace(/,/g, '&'); // 使用&代替,
var str4 = str3.match(/\{([^)]*)\}/); // 去掉{}
return str4[1];
}
var object = { name: "xl", age: 18 };
getURL(object);
方式二:遍历循环处理
遍历对象进行拼凑,将数据转换为key=value
的格式,再将=
转换为&
。
function getURL (obj) {
var _result = [];
for (var key in obj) {
var value = obj[key];
if (value.constructor == Array) {
value.forEach(function (_value) {
_result.push(key + "=" + _value);
});
} else {
_result.push(key + '=' + value);
}
}
console.log(_result.join('&'));
}
var object = { name: "xl", age: 18 };
getURL(object);
三、JS字符串操作函数
charAt()
,返回在指定位置的字符。
concat()
,字符串拼接,返回一个新字符串。
indexOf()
,返回某个指定的字符串值在字符串中首次出现的位置,没有匹配返回 -1。
match()
,检查一个字符串是否匹配一个正则表达式,返回一个结果数组。
replace()
,正则匹配,替换。
slice()
,提取字符串片段,并在新的字符串中返回被提取的部分。
substr()
,从起始索引号提取字符串中指定数目的字符。
https://www.runoob.com/jsref/jsref-obj-string.html
四、Array对象方法
slice()
,选取数组的一部分,并返回一个新数组。
splice()
,从数组中添加或删除元素。