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不支持正則的負向零寬斷言,只支持正向零寬斷言。函數