正则推导困难
来源:4-3 通用JS工具类封装(获取服务端接口url、参数功能)

心有猛虎_细嗅蔷薇
2017-06-12
new RegExp('(^|&)' + name + '=([^&]*)(&|$)')
看见这些符号拼接在一起,犯起了“密集恐惧症“
麻烦老师,能再仔细分解一下这个正则表达式吗
写回答
3回答
-
(^|&)' + name + '=([^&]*)(&|$) // 这是正则部分
(^|&)productId=([^&]*)(&|$) // 先把name给个值,以productId为例,正则成这样了
以参数productId=111&pageNum=1为例,开始分解:
(^|&) // productId前面是字符串开头或者&符号(支持pageNum=111&productId=1这种形式)
productId=([^&]*) // 字符串里匹配productId=xxxxx,不碰到&就一直匹配,[^&]*就是多个&符号除外的字符
(&|$) // 刚匹配到的productId=xxxxx后面还要跟&符号或者字符串结束(也是支持pageNum=111&productId=1这种形式)
642017-06-12 -
暮色如虹
2017-12-14
var reg = new RegExp('(&?)' + name + '=([^&]*)(&|$)');
(&?) 0或1个&开头。
这样也行吧?
00 -
西兰花伟大炮
2017-09-13
到此一游
012017-09-13
相似问题