JS各類狀況處理

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

相關文章
相關標籤/搜索