Javascript 獲取連接(url)參數的方法

qa項目可能須要客戶端獲取到url的參數,搜到一個很好的解決方法,記錄在博客,免得之後找麻煩。javascript

方法一:分解連接的方式html

<script type="text/javascript">
/*
 * 說明:Javascript 獲取連接(url)參數的方法
 */
function getQueryString(name)
{
    // 若是連接沒有參數,或者連接中不存在咱們要獲取的參數,直接返回空
    if(location.href.indexOf("?")==-1 || location.href.indexOf(name+'=')==-1)
    {
        return '';
    }
 
    // 獲取連接中參數部分
    var queryString = location.href.substring(location.href.indexOf("?")+1);
 
    // 分離參數對 ?key=value&key2=value2
    var parameters = queryString.split("&");
 
    var pos, paraName, paraValue;
    for(var i=0; i<parameters.length; i++)
    {
        // 獲取等號位置
        pos = parameters[i].indexOf('=');
        if(pos == -1) { continue; }
 
        // 獲取name 和 value
        paraName = parameters[i].substring(0, pos);
        paraValue = parameters[i].substring(pos + 1);
 
        // 若是查詢的name等於當前name,就返回當前值,同時,將連接中的+號還原成空格
        if(paraName == name)
        {
            return unescape(paraValue.replace(/\+/g, " "));
        }
    }
    return '';
};
 
//http://localhost/test.html?aa=bb&test=cc+dd&ee=ff
alert(getQueryString('test'));
</script>

 

方法二:用正則匹配java

<script type="text/javascript">
function getQueryStringRegExp(name)
{
    var reg = new RegExp("(^|\\?|&)"+ name +"=([^&]*)(\\s|&|$)", "i"); 
    if (reg.test(location.href)) return unescape(RegExp.$2.replace(/\+/g, " ")); return "";
};
 
//http://localhost/test.html?aa=bb&test=cc+dd&ee=ff
alert(getQueryStringRegExp('test'));
</script>

 

原文連接:http://www.codebit.cn/javascript/javascript-get-url-parameter.htmlurl

相關文章
相關標籤/搜索