var aaa = "AJSTAT_ok_pages=23;";
alert(aaa.match(new RegExp("(^| )AJSTAT_ok_pages=([^;]*)(;|$)")));我使用这个弹出的 值为AJSTAT_ok_pages=23;,,23;,
我查了下 好像是匹配出了
[0]=AJSTAT_ok_pages=23;
[1]=空 就是2个逗号中间
[2]=23;
[3]=空 最后个逗号后面的值请问这是为什么 我对这个正则的理解是(^| )AJSTAT_ok_pages=([^;]*)(;|$)
(^| ) 空格开始 或者以^开始
AJSTAT_ok_pages= 一定要有这个字符串
([^;]*) 不是;号的所有字符
(;|$)分号结尾 或者直接结尾
按我的理解 应该只能 匹配出
AJSTAT_ok_pages=23;这一个值吧 怎么会匹配出4个值
就算有4个值 那也没个值都包含 AJSTAT_ok_pages= 这个字符串吧 请教高手解析下
对正则了解不深 很恼火
alert(aaa.match(new RegExp("(^| )AJSTAT_ok_pages=([^;]*)(;|$)")));我使用这个弹出的 值为AJSTAT_ok_pages=23;,,23;,
我查了下 好像是匹配出了
[0]=AJSTAT_ok_pages=23;
[1]=空 就是2个逗号中间
[2]=23;
[3]=空 最后个逗号后面的值请问这是为什么 我对这个正则的理解是(^| )AJSTAT_ok_pages=([^;]*)(;|$)
(^| ) 空格开始 或者以^开始
AJSTAT_ok_pages= 一定要有这个字符串
([^;]*) 不是;号的所有字符
(;|$)分号结尾 或者直接结尾
按我的理解 应该只能 匹配出
AJSTAT_ok_pages=23;这一个值吧 怎么会匹配出4个值
就算有4个值 那也没个值都包含 AJSTAT_ok_pages= 这个字符串吧 请教高手解析下
对正则了解不深 很恼火
alert(aaa.match(new RegExp("(^| )AJSTAT_ok_pages=([^;]*)(;|$)")));还包括里面的子匹配
0]=AJSTAT_ok_pages=45; 整个匹配
[1]=空 第一个子匹配,就是匹配^
[2]=45 第二个子匹配
[3]=; 第三个子匹配,就是匹配45后面的;
正解,如果不想存储括号的匹配, 可以用 ?:
如:
alert(aaa.match(new RegExp("?:(^| )AJSTAT_ok_pages=?:([^;]*)?:(;|$)")));
你可以用这个在线调试一下正则:
http://www.renrousousuo.com/tools/regex_debug.html我觉得其他组的捕获木有必要 反而忽略大小写是有必要的
你可以试试这个:var reg=/^\s*AJSTAT_ok_pages=([^;]*);?$/i;