Javascript 獲取鏈接(url)參數(shù)的方法[正則與截取字符串]
更新時(shí)間:2010年02月09日 12:29:28 作者:
有時(shí)我們需要在客戶端獲取鏈接參數(shù),一個(gè)常見(jiàn)的方法是將鏈接當(dāng)做字符串,按照鏈接的格式分解,然后獲取對(duì)應(yīng)的參數(shù)值。本文給出的就是這個(gè)流程的具體實(shí)現(xiàn)方法。
當(dāng)然,我們也可以用正則直接匹配,文章中也給出了一個(gè)正則的例子。
分解鏈接的方式:
<script type="text/javascript">
<!--
// 說(shuō)明:Javascript 獲取鏈接(url)參數(shù)的方法
function getQueryString(name)
{
// 如果鏈接沒(méi)有參數(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)
{
// 如果鏈接沒(méi)有參數(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)文章
網(wǎng)絡(luò)復(fù)制內(nèi)容時(shí)常用的正則+editplus
有時(shí)侯我們?cè)诳截惥W(wǎng)頁(yè)上的內(nèi)容的時(shí)候,總是有一些,開(kāi)頭的數(shù)字,需要替換掉2006-11-11javascript圖片相似度算法實(shí)現(xiàn) js實(shí)現(xiàn)直方圖和向量算法
這篇文章主要介紹了javascript實(shí)現(xiàn)圖片相似度算法,大家參考使用吧2014-01-01JavaScript數(shù)據(jù)結(jié)構(gòu)之雙向鏈表
這篇文章主要為大家詳細(xì)介紹了JavaScript數(shù)據(jù)結(jié)構(gòu)之雙向鏈表,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-03-03基于javascript實(shí)現(xiàn)樣式清新圖片輪播特效
這篇文章主要為大家詳細(xì)介紹了基于javascript實(shí)現(xiàn)樣式清新圖片輪播特效,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-03-03用js實(shí)現(xiàn)控件的隱藏及style.visibility的使用
用js控制控件的隱藏,使用style.visibility實(shí)現(xiàn) ,具體代碼如下,感興趣的朋友可以參考下哈,希望對(duì)大家有所幫助2013-06-06ES6中Array.copyWithin()函數(shù)的用法實(shí)例詳解
ES6為Array增加了copyWithin函數(shù),用于操作當(dāng)前數(shù)組自身,用來(lái)把某些個(gè)位置的元素復(fù)制并覆蓋到其他位置上去。下面重點(diǎn)給大家介紹ES6中Array.copyWithin()函數(shù)的用法,需要的朋友參考下2017-09-09