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

鍍金池/ 問答/網(wǎng)絡(luò)安全  HTML/ js中,看看這個正則怎么匹配?

js中,看看這個正則怎么匹配?

http://localhost:9000/detail.html?p=111&cat=222

我想通過一個正則,匹配到這個網(wǎng)址中的111,注意,只能是111
(注:p這個字段只能含有數(shù)字)
我寫的正則是這樣的

p=\d+(?=[&])

這樣匹配到的結(jié)果是

p=111

我想把p=給去掉,也就是我不希望匹配到這個東西,怎么辦?

回答
編輯回答
遺莣

樓上的正則表達(dá)式只對你這一個例子適用,更具體的講,它只在路由參數(shù)只有兩個并且 p 是第一個的情況下適用。

js 里的正則是不支持判斷“前面是 p=”這種條件的,所以要讓結(jié)果完全只有 111 沒有 p= 出現(xiàn)是不可能的。
但是有一種替代方案,只需要將你原來的正則稍微修改一點(diǎn)就可以實(shí)現(xiàn):

url.match(/p=(\d+)(?=[&$])/);
// ["p=111", "111"]

這個數(shù)組的第二項(xiàng)就是你想要的東西。
這個正則表達(dá)式中,(\d+) 的括號會將括住的部分放進(jìn)返回結(jié)果里。
另外注意我將你的 (?=[&]) 補(bǔ)充成了 (?=[&$]),這是要考慮 p 是最后一個參數(shù)的情況

希望對你有幫助

2017年1月14日 03:37
編輯回答
撥弦
'http://localhost:9000/detail.html?p=111&cat=222'.match(/(?!p=)\d+(?=\&)/g);
//["111"]
2017年3月10日 22:12