扫码关注官方订阅号
var reg = /([^?&=]+)=([^?&=]*)/g;
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
"http:/www.baidu.com/?a=1&b=2".match(/([^?&=]+)=([^?&=]*)/g); //["a=1", "b=2"]
前后的斜杠/是正则表达式的分隔符,最后的g表示全局匹配,匹配到第一个之后不会停下来,会继续匹配,相当于PHP里的preg_match_all,没有g就相当于preg_match,下面有例子说明.
/
g
preg_match_all
preg_match
()表示子组.
()
[^]表示字符类取反,比如[^abc]匹配的就是不是a和b和c的单个字符,[^?&=]匹配不是^和?和=的单个字符.
[^]
[^abc]
[^?&=]
字符类[]后面的+和*表示量词:+ 等价于 {1,} 重复1次或多次* 等价于 {0,} 重复0次或多次
[]
+
*
{1,}
{0,}
var str = "foo=bar&lang=js"; var reg = /[^?&=]{1,}=[^?&=]{0,}/g; console.log(str.match(reg)); //输出 ["foo=bar", "lang=js"] var str = "foo=bar&lang=js"; var reg = /[^?&=]{1,}=[^?&=]{0,}/; console.log(str.match(reg)); //输出 ["foo=bar"] var str = "foo=bar&lang=js"; var reg = /([^?&=]{1,})=([^?&=]{0,})/; console.log(str.match(reg)); //输出 ["foo=bar", "foo", "bar"]
这段规则式一般用于提取URL中的参数,会把URL中?后的参数部分以&分割为参数对,比如
?
&
"http:/www.baidu.com/?a=1&b=2".match(/([^?&=]+)=([^?&=]*)/g);
匹配的结果就是
["a=1", "b=2"]
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
前后的斜杠
/是正则表达式的分隔符,最后的g表示全局匹配,匹配到第一个之后不会停下来,会继续匹配,相当于PHP里的preg_match_all,没有g就相当于preg_match,下面有例子说明.()表示子组.[^]表示字符类取反,比如[^abc]匹配的就是不是a和b和c的单个字符,[^?&=]匹配不是^和?和=的单个字符.字符类
[]后面的+和*表示量词:+等价于{1,}重复1次或多次*等价于{0,}重复0次或多次这段规则式一般用于提取URL中的参数,会把URL中
?后的参数部分以&分割为参数对,比如匹配的结果就是