刚看书说匹配 url后参数部份字符串是否具有paraName=value的形式,使用的正则表达式
new RegExp("^"+paraName+"[?=\\=]","g"),为什么后半部份要用[?=\\=]呢?直接用\=
不就可以了吗,问下有什么区别另外,有什么文章深入的介绍了JS正则表达式,也请推荐下。
new RegExp("^"+paraName+"[?=\\=]","g"),为什么后半部份要用[?=\\=]呢?直接用\=
不就可以了吗,问下有什么区别另外,有什么文章深入的介绍了JS正则表达式,也请推荐下。
如果用"\="表示的字符串:=前面加上 ?= 估计是打算只查找那个=号但不匹配 即只匹配出参数名,而不包含后面的等号。但是,实际上想要达到这种效果,应该用圆括号而非方括号下面是一个例子,可以看到如果用圆括号,=只做查找而未被匹配出来;用方括号则=被匹配出来var re1 = new RegExp("name(?=\\=)", "gi");
var re2 = new RegExp("name[?=\\=]", "gi");
var s = "123.aspx?name=abc";
alert(s.match(re1));
alert(s.match(re2));
var re1 = new RegExp("name(?=\\=)", "gi");
var re2 = new RegExp("name[?=\\=]", "gi");
var s = "123.aspx?name=abc";
alert(s.match(re1)); // 结果为 name
alert(s.match(re2)); // 结果为 name=
new RegExp("^"+paraName+"(?=\\=)","g")
表示正向查找,匹配一个paraName后面跟“=”的情况,(?=exp)断言自身出现的位置的后面能匹配表达式exp