1. 程式人生 > >javascript match方法獲取url引數的正則表示式(用來獲取某個引數值)很重要!!!!!

javascript match方法獲取url引數的正則表示式(用來獲取某個引數值)很重要!!!!!

方法一:正則分析法
複製程式碼 程式碼如下:
function getQueryString(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
var r = window.location.search.substr(1).match(reg);
if (r != null) return unescape(r[2]); return null;
}

呼叫方法:
alert(GetQueryString("引數名1"));alert(GetQueryString("引數名2"));

alert(GetQueryString("引數名3"));

說明

match() 方法將檢索字串 stringObject,以找到一個或多個與 regexp 匹配的文字。這個方法的行為在很大程度上有賴於 regexp 是否具有標誌 g。

如果 regexp 沒有標誌 g,那麼 match() 方法就只能在 stringObject 中執行一次匹配。如果沒有找到任何匹配的文字, match() 將返回 null。否則,它將返回一個數組,其中存放了與它找到的匹配文字有關的資訊。該陣列的第 0 個元素存放的是匹配文字,而其餘的元素存放的是與正則表示式的子表示式匹配的文字。除了這些常規的陣列元素之外,返回的陣列還含有兩個物件屬性。index 屬性宣告的是匹配文字的起始字元在 stringObject 中的位置,input 屬性宣告的是對 stringObject 的引用。

如果 regexp 具有標誌 g,則 match() 方法將執行全域性檢索,找到 stringObject 中的所有匹配子字串。若沒有找到任何匹配的子串,則返回 null。如果找到了一個或多個匹配子串,則返回一個數組。不過全域性匹配返回的陣列的內容與前者大不相同,它的陣列元素中存放的是 stringObject 中所有的匹配子串,而且也沒有 index 屬性或 input 屬性。

注意:在全域性檢索模式下,match() 即不提供與子表示式匹配的文字的資訊,也不宣告每個匹配子串的位置。如果您需要這些全域性檢索的資訊,可以使用 RegExp.exec()。


方法二
複製程式碼 程式碼如下:
<Script language="javascript">
function GetRequest() {
var url = location.search; //獲取url中"?"符後的字串
var theRequest = new Object();
if (url.indexOf("?") != -1) {
var str = url.substr(1);
strs = str.split("&");
for(var i = 0; i < strs.length; i ++) {
theRequest[strs[i].split("=")[0]]=unescape(strs[i].split("=")[1]);
}
}
return theRequest;
}
</Script>

呼叫方法:
<Script language="javascript">
var Request = new Object();
Request = GetRequest();
var 引數1,引數2,引數3,引數N;
引數1 = Request['引數1'];
引數2 = Request['引數2'];
引數3 = Request['引數3'];
引數N = Request['引數N'];
</Script>