js 獲取鏈接地址中的參數

js 獲取鏈接地址中的參數

比如,鏈接地址是:"http://blog.whuang.com/search?username=abc&age=26"

我要獲取username參數的值"abc"

方式一:

核心方法

/**
     * 獲取指定的參數值
     * @param url3
     * @param key
     * @returns {void|string|XML}
     */
    getParameter: function (url3, key) {
        var regExp = new RegExp('^.*[?&]' + key + '=([^&=?]*)&?.*$', '');
        var parameter = url3.replace(regExp, '$1');
        return parameter;
    }

 

測試代碼:

var url3="http://blog.whuang.com/search?username=abc&age=26";


        console.log(urlUtil.getParameter(url3,'age'));

url3="http://blog.whuang.com/search?username=abc&age=26";
console.log(urlUtil. getParameter(url3,'username'));

url3="http://blog.whuang.com/search?username=abc&age=26&callback=http%3A%2F%2Fc.b.com%3Fid%3D3";
console.log(urlUtil.getParameter(url3,'callback'));

url3="http://blog.whuang.com/search?username=&age=26";
console.log(urlUtil.getParameter(url3,'username'));

 

 

方式二:使用第三方庫purl

地址:https://github.com/allmarkedup/purl

範例:

this.options = {
        		username: purl().param('username') || '',
        		age: purl().param('age') || '',
                Key: '' 
        	};

 purl 代碼見附件

 

方式三:

/***
 * get request query string
 * @returns {{}}
 */
getQueryParams: function () {
    var i, ilen, strs, keyName, keyValue,
        params = {},
        path = window.location.pathname,
        url = window.location.href;
    if (url.indexOf("?") > -1) {
        var index = url.indexOf("?");
        strs = url.substring(index + 1);
        strs = strs.split("&");
        ilen = strs.length;
        for (i = 0; i < ilen; i++) {
            var indexEqual = strs[i].indexOf('=');
            if (indexEqual == -1) {
                keyName = strs[i];
                keyValue = '';
            } else {
                keyName = strs[i].substring(0, indexEqual);
                keyValue = strs[i].substring(indexEqual + 1) || "";
            }

            if (keyName == "callback") keyValue = decodeURIComponent(keyValue);
            params[keyName] = keyValue;
        }
    }
    return params;
}

 調用方式:

getQueryParams().username

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章