首页 新闻 会员 周边

js 正则表达式的exec方法是怎么使用的啊?

0
悬赏园豆:5 [待解决问题]

现在下面的代码用exec只获取到了一个"Box";

而且数组长度是1.

现在我的匹配字符串中有很多个"Box".

怎么利用exec方法获取全部"Box"呢.?并且返回数组的长度.

var pattern = /Box/;

var str = 'BoxssddsfBsboxdsf323sBox';

var a = pattern.exec(str);

alert(a.length)

 

顺便问下.哪里有js的正则表达式教程看下啊?

< >
分享
所有回答(4)
0
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就可以得到了

artwl | 园豆:16736 (专家六级) | 2012-08-08 07:43
0

var pattern = /Box/;

少了个"g"而已:

var pattern = /Box/g;

向往-SONG | 园豆:4853 (老鸟四级) | 2012-08-09 14:23
0
Bluishoul | 园豆:212 (菜鸟二级) | 2012-08-13 16:13
0

正则表达式的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

acjialiren | 园豆:191 (初学一级) | 2012-09-23 17:33
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册