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

