Javascript 獲取鏈接(url)參數(shù)的方法[正則與截取字符串]
更新時間:2010年02月09日 12:29:28 作者:
有時我們需要在客戶端獲取鏈接參數(shù),一個常見的方法是將鏈接當(dāng)做字符串,按照鏈接的格式分解,然后獲取對應(yīng)的參數(shù)值。本文給出的就是這個流程的具體實現(xiàn)方法。
當(dāng)然,我們也可以用正則直接匹配,文章中也給出了一個正則的例子。
分解鏈接的方式:
<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等于當(dāng)前name,就返回當(dāng)前值,同時,將鏈接中的+號還原成空格
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>
分解鏈接的方式:
復(fù)制代碼 代碼如下:
<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等于當(dāng)前name,就返回當(dāng)前值,同時,將鏈接中的+號還原成空格
if(paraName == name)
{
return unescape(paraValue.replace(/\+/g, " "));
}
}
return '';
};
//http://localhost/test.html?aa=bb&test=cc+dd&ee=ff
alert(getQueryString('test'));
//-->
</script>
用正則匹配的方式:
復(fù)制代碼 代碼如下:
<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#中使用正則表達(dá)式匹配a標(biāo)簽
- 用Javascript正則實現(xiàn)url鏈接的解析類
- node.js正則表達(dá)式獲取網(wǎng)頁中所有鏈接的代碼實例
- 使用 js+正則表達(dá)式為關(guān)鍵詞添加鏈接
- javascript 獲取鏈接文件地址中第一個斜線內(nèi)的正則表達(dá)式
- 刪除javascript中注釋語句的正則表達(dá)式
- javascript中使用正則表達(dá)式實現(xiàn)刪除字符串中的前后空格
- Java/Js下使用正則表達(dá)式匹配嵌套Html標(biāo)簽
- JavaScript正則替換HTML標(biāo)簽功能示例
- JavaScript正則表達(dá)式匹配 div style標(biāo)簽
- JavaScript實現(xiàn)正則去除a標(biāo)簽并保留內(nèi)容的方法【測試可用】
相關(guān)文章
JavaScript通過RegExp使用正則表達(dá)式過程詳解
正則表達(dá)式用于定義一些字符串的規(guī)則。計算機(jī)可以根據(jù)正則表達(dá)式,來檢查一個字符串是否符合指定的規(guī)則,或者將字符串中符合規(guī)則的內(nèi)容提取出來。RegExp的意思是 Regular expression。使用typeof檢查正則對象,會返回object2023-03-03
JavaScript刪除數(shù)組中指定元素5種方法例子
這篇文章主要給大家介紹了關(guān)于JavaScript刪除數(shù)組中指定元素5種方法,在最近的項目中,有用到j(luò)s對數(shù)組的操作,所以這里總結(jié)一下,需要的朋友可以參考下2023-07-07
關(guān)于字符串和對象互轉(zhuǎn)以及JSON.parse()的坑
這篇文章主要介紹了關(guān)于字符串和對象互轉(zhuǎn)以及JSON.parse()的坑及解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-09-09
mvvm雙向綁定機(jī)制的原理和實現(xiàn)代碼(推薦)
下面小編就為大家?guī)硪黄猰vvm雙向綁定機(jī)制的原理和實現(xiàn)代碼(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-06-06
JS實現(xiàn)發(fā)送短信驗證后按鈕倒計時功能(防止刷新倒計時失效)
這篇文章主要介紹了JS實現(xiàn)發(fā)送短信驗證后按鈕倒計時功能防止刷新倒計時失效問題,在項目開發(fā)中經(jīng)常會用到此功能,下面小編通過本文給大家分享JS實現(xiàn)發(fā)送短信驗證后按鈕倒計時功能(防止刷新倒計時失效),需要的朋友參考下吧2017-07-07
基于JS實現(xiàn)數(shù)字動態(tài)變化顯示效果附源碼
我們經(jīng)??吹揭壕щ娮颖順邮剑瑪?shù)字動態(tài)顯示,動態(tài)變化的在指定元素內(nèi)顯示數(shù)字。怎么實現(xiàn)效果呢?下面小編給大家?guī)砹嘶贘S實現(xiàn)數(shù)字動態(tài)變化顯示效果 ,感興趣的朋友一起看看吧2019-07-07

