正则推导困难

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

心有猛虎_细嗅蔷薇

2017-06-12

new RegExp('(^|&)' + name + '=([^&]*)(&|$)')

看见这些符号拼接在一起,犯起了“密集恐惧症“ 

麻烦老师,能再仔细分解一下这个正则表达式吗     

写回答

3回答

Rosen

2017-06-12

(^|&)' + name + '=([^&]*)(&|$)  // 这是正则部分

(^|&)productId=([^&]*)(&|$)     // 先把name给个值,以productId为例,正则成这样了

以参数productId=111&pageNum=1为例,开始分解:

(^|&)  // productId前面是字符串开头或者&符号(支持pageNum=111&productId=1这种形式)

productId=([^&]*)     // 字符串里匹配productId=xxxxx,不碰到&就一直匹配,[^&]*就是多个&符号除外的字符

(&|$)    // 刚匹配到的productId=xxxxx后面还要跟&符号或者字符串结束(也是支持pageNum=111&productId=1这种形式)

6
4
Rosen
回复
心有猛虎_细嗅蔷薇
妥!!
2017-06-12
共4条回复

暮色如虹

2017-12-14

var reg     = new RegExp('(&?)' + name + '=([^&]*)(&|$)');

(&?) 0或1个&开头。

这样也行吧?

0
0

西兰花伟大炮

2017-09-13

到此一游

0
1
Rosen
齐天大圣
2017-09-13
共1条回复

真实数据对接 从0开发前后端分离的企业级上线项目

【毕设项目精品】前端实战,对接真实服务端数据,开发完整项目

4244 学习 · 4113 问题

查看课程