Javascript 獲取鏈接(url)參數(shù)的方法[正則與截取字符串]
更新時間:2010年02月09日 12:29:28 作者:
有時我們需要在客戶端獲取鏈接參數(shù),一個常見的方法是將鏈接當做字符串,按照鏈接的格式分解,然后獲取對應的參數(shù)值。本文給出的就是這個流程的具體實現(xiàn)方法。
當然,我們也可以用正則直接匹配,文章中也給出了一個正則的例子。
分解鏈接的方式:
<script type="text/javascript">
<!--
// 說明:Javascript 獲取鏈接(url)參數(shù)的方法
function getQueryString(name)
{
// 如果鏈接沒有參數(shù),或者鏈接中不存在我們要獲取的參數(shù),直接返回空
if(location.href.indexOf("?")==-1 || location.href.indexOf(name+'=')==-1)
{
return '';
}
// 獲取鏈接中參數(shù)部分
var queryString = location.href.substring(location.href.indexOf("?")+1);
// 分離參數(shù)對 ?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>
用正則匹配的方式:
<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>
分解鏈接的方式:
復制代碼 代碼如下:
<script type="text/javascript">
<!--
// 說明:Javascript 獲取鏈接(url)參數(shù)的方法
function getQueryString(name)
{
// 如果鏈接沒有參數(shù),或者鏈接中不存在我們要獲取的參數(shù),直接返回空
if(location.href.indexOf("?")==-1 || location.href.indexOf(name+'=')==-1)
{
return '';
}
// 獲取鏈接中參數(shù)部分
var queryString = location.href.substring(location.href.indexOf("?")+1);
// 分離參數(shù)對 ?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>
用正則匹配的方式:
復制代碼 代碼如下:
<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>
您可能感興趣的文章:
- 實例分析js和C#中使用正則表達式匹配a標簽
- 用Javascript正則實現(xiàn)url鏈接的解析類
- node.js正則表達式獲取網(wǎng)頁中所有鏈接的代碼實例
- 使用 js+正則表達式為關鍵詞添加鏈接
- javascript 獲取鏈接文件地址中第一個斜線內(nèi)的正則表達式
- 刪除javascript中注釋語句的正則表達式
- javascript中使用正則表達式實現(xiàn)刪除字符串中的前后空格
- Java/Js下使用正則表達式匹配嵌套Html標簽
- JavaScript正則替換HTML標簽功能示例
- JavaScript正則表達式匹配 div style標簽
- JavaScript實現(xiàn)正則去除a標簽并保留內(nèi)容的方法【測試可用】
相關文章
網(wǎng)絡復制內(nèi)容時常用的正則+editplus
有時侯我們在拷貝網(wǎng)頁上的內(nèi)容的時候,總是有一些,開頭的數(shù)字,需要替換掉2006-11-11javascript圖片相似度算法實現(xiàn) js實現(xiàn)直方圖和向量算法
這篇文章主要介紹了javascript實現(xiàn)圖片相似度算法,大家參考使用吧2014-01-01基于javascript實現(xiàn)樣式清新圖片輪播特效
這篇文章主要為大家詳細介紹了基于javascript實現(xiàn)樣式清新圖片輪播特效,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-03-03用js實現(xiàn)控件的隱藏及style.visibility的使用
用js控制控件的隱藏,使用style.visibility實現(xiàn) ,具體代碼如下,感興趣的朋友可以參考下哈,希望對大家有所幫助2013-06-06ES6中Array.copyWithin()函數(shù)的用法實例詳解
ES6為Array增加了copyWithin函數(shù),用于操作當前數(shù)組自身,用來把某些個位置的元素復制并覆蓋到其他位置上去。下面重點給大家介紹ES6中Array.copyWithin()函數(shù)的用法,需要的朋友參考下2017-09-09