JavaScript獲取頁面網(wǎng)址 GET 請求的參數(shù)
頁面的URL: http://localhost:8080/erp?name=小明&age=12
要求:獲取傳遞的name和age值
方法一:正則分析法
/**
* 根據(jù)變量名獲取匹配值
*/
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;
}
//調(diào)用
alert(GetQueryString("name"));
alert(GetQueryString("age"));
方法二:手動截取
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]]=decodeURI(strs[i].split("=")[1]);
}
}
return theRequest;
}
//調(diào)用
var Request = new Object();
Request = GetRequest();
var name,age;
name = Request['name'];
age = Request['age'];
調(diào)用方法說明
- window.location 對象用于獲得當前頁面的地址 (URL)慰于,并把瀏覽器重定向到新的頁面
屬性 | 描述 |
---|---|
hash | 從井號 (#) 開始的 URL(錨) |
host | 主機名和當前 URL 的端口號 |
hostname | 當前 URL 的主機名 |
href | 完整的 URL |
pathname | 返回當前頁面的路徑和文件名 |
port | 返回 web 主機的端口 (80 或 443) |
protocol | 返回所使用的 web 協(xié)議(http:// 或 https://) |
search | 從問號 (?) 開始的 URL(查詢部分) |
2.match() 方法可在字符串內(nèi)檢索指定的值,或找到一個或多個正則表達式的匹配。
該方法類似 indexOf() 和 lastIndexOf()芹啥,但是它返回指定的值惭缰,而不是字符串的位置箱叁。
語法
兩個構(gòu)造器
stringObject.match(searchvalue)
stringObject.match(regexp)
參數(shù) | 描述 |
---|---|
searchvalue | 必需驼卖。規(guī)定要檢索的字符串值筏餐。 |
regexp | 必需。規(guī)定要匹配的模式的 RegExp 對象捂寿。如果該參數(shù)不是 RegExp 對象口四,則需要首先把它傳遞給 RegExp 構(gòu)造函數(shù),將其轉(zhuǎn)換為 RegExp 對象秦陋。 |
返回值
存放匹配結(jié)果的數(shù)組蔓彩。該數(shù)組的內(nèi)容依賴于 regexp 是否具有全局標志 g
匹配字符串:
var str="Hello world!"
document.write(str.match("world") + "<br />")
//輸出:world
使用全局匹配的正則表達式來檢索字符串中的所有數(shù)字:
var str="1 plus 2 equal 3"
document.write(str.match(/\d+/g))
//輸出:1,2,3
3.decodeURI() 函數(shù)可對 encodeURI() 函數(shù)編碼過的 URI 進行解碼。