在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ 用JS獲取url上的參數(shù)

用JS獲取url上的參數(shù)

function getQuery(key) {
    var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"),
        r = window.location.search.substr(1).match(reg);
    if (r != null) return decodeURI(r[2])
    return null
}

這段代碼是獲取URL上的參數(shù)的封裝函數(shù),他是用正則匹配的,我正則比較弱,麻煩社區(qū)上的大神幫我解讀下

(^|&): 表示什么含義

=([^&]*)(&|$) 表示什么含義

回答
編輯回答
萌面人

你的程序不能正常工作吧,形參key沒有被使用,name這個(gè)變量不知道什么地方來(lái)的。
估計(jì)正確的代碼是

function getQuery(keyName) {
    var reg = new RegExp("(^|&)" + keyName+ "=([^&]*)(&|$)"),
        r = window.location.search.substr(1).match(reg);
    if (r != null) return decodeURI(r[2])
    return null
}

這個(gè)函數(shù)的功能是在URI中查詢keyName的值。
在match匹配后,返回?cái)?shù)組結(jié)構(gòu)是
[整個(gè)匹配項(xiàng),頭或者&,keyName的值(就是=后面有效部分),尾或者&,index:匹配的位置,input:整個(gè)輸入]

2017年6月22日 15:18
編輯回答
祉小皓

現(xiàn)代瀏覽器可以使用:

// var url_string = "http://www.example.com/t.html?a=1&b=3&c=m2-m3-m4-m5";

var url = new URL(window.location.href);
var c = url.searchParams.get("c");

Reference:
https://developer.mozilla.org...
https://stackoverflow.com/que...

2017年6月11日 16:39
編輯回答
遺莣

補(bǔ)充樓上:

str.match(regexp);

如果字符串匹配到了表達(dá)式,會(huì)返回一個(gè)數(shù)組,數(shù)組的第一項(xiàng)是進(jìn)行匹配完整的字符串,之后的項(xiàng)是用圓括號(hào)捕獲的結(jié)果。如果沒有匹配到,返回null

一次次問不如系統(tǒng)過(guò)一遍:
正則表達(dá)式
RegExp對(duì)象

在線正則工具

2017年3月24日 08:00
編輯回答
薄荷綠
(^|&)表示開頭位置或者&字符串位置
=([^&]*)(&|$)表示'='+非'&'字符串,并且末尾是結(jié)束或者'&'字符
2018年6月12日 06:32