为了账号安全,请及时绑定邮箱和手机立即绑定

匹配url查询参数的正则问题

匹配url查询参数的正则问题

三国纷争 2018-11-19 17:07:42
网上js中匹配url中参数的函数function getQueryString(name){            var reg = new RegExp("(^|&)"+name+"=([^&]*)(&|$)");            var href = window.location.href            var index = href.indexOf('?')            var r = href.substr(index+1).match(reg);            if(r != null)            return unescape(r[2]);            return null;         }我看解释,开头的(^|&)的作用是^或者&或者都没有,(&|$)是&或者$或者没有;但是我试了以^开头,会匹配不到。所以我理解^在这里就是开头,$是结尾.如果是这样|&又怎么理解,或者说是不是可以这样写^(&),|没有意义的。这样又返回null.我最后试了^(|&)"+name+"=(1*)(&|)$,返回结果和源码是一致的。那么|是什么作用,是没有或者& 吗?
查看完整描述

1 回答

?
杨魅力

TA贡献1811条经验 获得超6个赞

我现有知识的理解是|是或的意思,两遍要有值,没值我猜测是空串或者空串

console.log(/|/.test("12313")); //true

而你写的(^|&)意思是要么(^),也就是空开头,要么&

console.log(/(^|&)/.test("12131"));  //都是trueconsole.log(/(^a|&)/.test("12131")); //尖叫那边随便写个就是false了


查看完整回答
反对 回复 2018-11-19
  • 1 回答
  • 0 关注
  • 678 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号