1.获取URL及其参数javascript
实例:URL:file:///C:/Program%20Files/nodejs/test/jumbTarget.html?a=1&&b=2&&c=3html
//假设返回的对象类型为Array或单个字符串 function getUrlParams() { var str = location.search; if (str.indexOf("?") != -1) { //判断参数是否存在 var doneStr = str.substr(1); if (doneStr.indexOf("&&") != -1) { var arr1 = doneStr.split("&&"); var arr2 = arr1.map(function (item) { return item.split("=")[1]; }) return arr2; } else { return doneStr.split("="); } } else { console.error("当前URL中无参数存在!"); } }
返回的结果为["1","2","3"],固然也能够进行其余类型的返回,例如object等;java
方法二:正则表达式node
//假设返回的对象类型为Array(这个例子不对单个参数作判断了) function getUrlParams() { var str = location.search; if (str.indexOf("?") != -1) { //判断参数是否存在 var doneStr = str.substr(1); var reg = /=\w+(?=&&|\b)/g; var arr = doneStr.match(reg); return arr.map(function(item) { return item.substr(1); }) } else { console.error("当前URL中无参数存在!"); } } var paramsArr = getUrlParams(); console.log(paramsArr);
在JS比较尴尬的是,JS并不支持负向零宽断言,因此没法直接使用?<=来匹配=,所以多了map函数的一步。正则表达式
注:JS不支持正则的负向零宽断言,只支持正向零宽断言。函数