现在下面的代码用exec只获取到了一个"Box";
而且数组长度是1.
现在我的匹配字符串中有很多个"Box".
怎么利用exec方法获取全部"Box"呢.?并且返回数组的长度.
var pattern = /Box/;
var str = 'BoxssddsfBsboxdsf323sBox';
var a = pattern.exec(str);
alert(a.length)
顺便问下.哪里有js的正则表达式教程看下啊?
var pattern = /Box/g; var str = 'BoxssddsfBsboxdsf323sBox'; var match=pattern.exec(str),results=[]; while(match != null){ results.push(match); match=pattern.exec(str); }
可以这样写,results最后存的就是你要的结果,至于长度用 results.length就可以得到了
var pattern = /Box/;
少了个"g"而已:
var pattern = /Box/g;
正则表达式的exec方法和字符串的match方法是不一样的
var pattern = /Box/g; var str = 'BoxssddsfBsboxdsf323sBox'; var a = pattern.exec(str); alert(a.length); alert(pattern.lastIndex); a = pattern.exec(str); alert(a.length); alert(pattern.lastIndex); var m = str.match(pattern); alert(m.length);
exec方法执行一次只会返回一个结果
正则表达式lastindex属性表示下次匹配的起始位置,对应的,每次exec方法执行后,lastindex值都会变
而字符串match方法一次就返回所有的结果
至于教程,我自己最近刚写了一个,还是初稿,你可以看看有建议可以随时提
http://note.youdao.com/share/?id=7629e2d94d6d54e2a2fbbc6ba3c93269&type=note