这个正则 var reg = /[^?&=]+=[^?&=]*/g;啥意思?

2016/12 01 14:12
此文章不得转载,如有需要请联系网站管理员。

一度的温暖,一百度的爱情,来自于www.ca788.com的点点滴滴

  var reg = /[^?&=]+=[^?&=]*/g;


"http:/www.baidu.com/?a=1&b=2".match/[^?&=]+=[^?&=]*/g; //["a=1", "b=2"]

前后的斜杠/是正则表达式的分开符,最后的g表现全局婚配,婚配到第一个之后不会停上去,会持续婚配,相称于PHP里的preg_match_all,没有g就相称于preg_match,下面有例子阐明.

表现子组.

[^]表现字符类取反,比如[^abc]婚配的便是不是a和b和c的单个字符,[^?&=]婚配不是^和?和=的单个字符.

字符类[]后面的+*表现量词:
+ 等价于 {1,} 反复1次或屡次
* 等价于 {0,} 反复0次或屡次

var str = "foo=bar&lang=js";
var reg = /[^?&=]{1,}=[^?&=]{0,}/g;
console.logstr.matchreg; //输入 ["foo=bar", "lang=js"]

var str = "foo=bar&lang=js";
var reg = /[^?&=]{1,}=[^?&=]{0,}/;
console.logstr.matchreg; //输入 ["foo=bar"]

var str = "foo=bar&lang=js";
var reg = /[^?&=]{1,}=[^?&=]{0,}/;
console.logstr.matchreg; //输入 ["foo=bar", "foo", "bar"]

这段规矩式普通用于提取URL中的参数,会把URL中?后的参数部分以&联络为参数对,比如

"http:/www.baidu.com/?a=1&b=2".match/[^?&=]+=[^?&=]*/g; 

婚配的后果便是

["a=1", "b=2"]

(看完/读完)这篇文章有何感想! 来看看www.ca788.com是怎么评论的吧!

--转载请注明: www.ca788.com#亚洲城ca788手机版官网 » 这个正则 var reg = /[^?&=]+=[^?&=]*/g;啥意思?

发表评论

(必填)