如:route=module/pavcarousel&module_id=31&token=ee73833ad763eeecbed4b46289df5d64/test
需要拆分成:route=modulepavcarousel&module_id=31&token=ee73833ad763eeecbed4b46289df5d64test
三段,如果后面有更多段的就继续拆分
不使用split(),用正则如何写
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
var str = 'route=module/pavcarousel&module_id=31&token=ee73833ad763eeecbed4b46289df5d64/test'; var arr = str.match(/([^\/]+)/g); console.log(arr); 用split就挺好啊,干嘛要这么折腾呢
如果用exec分组怎么实现呢
如果非要匹配子串的模式,当然可以这样 url.match(/.*?\//g) 只要手动在url结尾补上"/" 就能把所有字串过滤出来
当然对于这种url来说 要分割"/",当然是split最方便了,要知道split也是正则表达式,只不过匹配的是分隔符而已
由于js不支持断言,所以你可以匹配含有/号的然后替换一下,使用 \/.+?(?=\/)出带有前缀/然后替换/或substring。对于你这个特殊的首先要求尾部添加/号,然后通过\w.+?(?=\/)匹配,之后每个去掉前缀/
如果用exec分组怎么实现呢
如果非要匹配子串的模式,当然可以这样 url.match(/.*?\//g)
只要手动在url结尾补上"/" 就能把所有字串过滤出来
当然对于这种url来说 要分割"/",当然是split最方便了,要知道split也是正则表达式,只不过匹配的是分隔符而已
由于js不支持断言,所以你可以匹配含有/号的然后替换一下,使用 \/.+?(?=\/)出带有前缀/然后替换/或substring。对于你这个特殊的首先要求尾部添加/号,然后通过\w.+?(?=\/)匹配,之后每个去掉前缀/