JavaScript实现Url参数的提取
# 概述
最近最项目时遇到,提取url参数部分并分割成不同的步骤,为了方便以后遇到同样的功能,将提取url参数部分写成一个方法;
# 知识点
## 获取url的参数部分
var str = window.location.search
注意: 参数含有中文字符是可能出现乱码的现象故需要进行解码操作,即是:
var str = decodeURIComponent(window.location.search);
## 分割字符串slpit
split() :把一个字符串分割成字符串数组
语法:
stringObject.split(separator,howmany)
separator必需。字符串或正则表达式,从该参数指定的地方分割 stringObject。
howmany可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度;
# 实现
// 格式化URL参数
function formateSearchParam(str) {
// 提取?之后的所有字符并且根据&分割字符串
var arr = str.substr(1).split('&');
// 定义一个对象来存放分割后的参数以及参数值
var object = {};
for (var i = 0; i < arr.length; i++) {
// 通过'='分割字符串数组arr中的每一项
var arr1 = arr[i].split('=');
// 按key: value的形式存储
object[arr1[0]] = arr1[1];
}
return object;
}
# URL格式
URL: http://127.0.0.1/demo/index?id=123&state=1&num=345