用正则解析URL中的所有参数
解析 参数 所有 url 正则
2023-09-11 14:21:46 时间
先写一个测试地址
var url="www.baidu.com?a=1&b=2&C=3";
分析规则:
最前面是?或&,紧跟着除 ?&#以外的字符若干,然后是等号,最后再跟着除 ?&#以外的字符,并且要分组捕获到【除?&#以外的字符】
写出来的正则就是这样: var reg=/[?&]([^?&#]+)=([^?&#]+)/g;
用正则的exec来处理,同时用到while循环,因为我们不确定参数到底有多少对
可以看到在执行结果中匹配到的Array下标1就是我们要的参数名,下标2就是我们要的参数值,再把参数值、参数名放到对象中,完整如下:
var url="www.baidu.com?a=1&b=2&C=3";//测试地址
/*
分析:
最前面是?或&,紧跟着除 ?&#以外的字符若干,然后再等号,最后再跟着除 ?&#以外的字符,并且要分组捕获到【除?&#以外的字符】
*/
var reg=/[?&]([^?&#]+)=([^?&#]+)/g;
var param={};
var ret = reg.exec(url);
while(ret){//当ret为null时表示已经匹配到最后了,直接跳出
param[ret[1]]=ret[2];
ret = reg.exec(url);
}
console.log(param)
执行打印结果:
可以看到我们捕获到所有的参数,自己可以再做其他处理了。
处理while循环的时候要注意死循环,这是开发的时候经常犯错的地方,虽然我是老油条,也经常在这个地方犯错误,哈哈,打完收工!!
相关文章
- String学习之-深入解析String#intern
- [Go] 命令行参数解析包(flag 包)使用详解
- spring mvc: 参数方法名称解析器(用参数来解析控制器下的方法)MultiActionController/ParameterMethodNameResolver/ControllerClassNameHandlerMapping
- Kubernetes 弹性伸缩全场景解析 (一):概念延伸与组件布局
- Python命令行参数解析模块getopt使用实例
- nginx、php-fpm、mysql用户权限解析
- okhttp 解析respone:
- Python内置的一个用于命令项选项与参数解析的模块argparse
- SAP Spartacus里解析route参数的逻辑
- Atitit 字符串转换数组main参数解析 args splitByWholeSeparator String string=" -host 101.1 8*124 -db 1
- 1.XML的基础和DOCTYPE字段的解析 DTD——文档类型定义(Document Type Definition)/ 由于XML可以自定义标签,那么自然各人编写的标签不一样,这样同步数据便成了问
- Atitit.软件开发的最终的设计 dsl化,ast化(建立ast, 解析执行ast)
- Atitit.注解解析(1)---------词法分析 attilax总结 java .net
- 解析关于Tomcat Servlet-request的获取请求参数及几种常用方法
- 剖析CWE视图的层次定义和解析方式
- 解析复杂的嵌套数据结构-jsonpath
- [SSD综述1.5] SSD固态硬盘参数图文解析_选购固态硬盘就像买衣服?
- void及void指针含义的深刻解析
- APP稳定性测试神器Monkey全解析
- 动作识别0-11:mmaction2(SlowFast)-源码无死角解析(7)-slow_path,fast_path网络构建
- 动作识别0-08:mmaction2(SlowFast)-源码无死角解析(4)-数据加载,预处理-1(重点篇)
- ORB-SLAM2 --- Tracking::Track 追踪线程解析
- ORB-SLAM2 --- LocalMapping::Run 局部建图线程解析
- Kubernetes controller-manager 常见参数解析
- [SSD综述1.5] SSD固态硬盘参数图文解析_选购固态硬盘就像买衣服?