javascript中如何通过循环把所有匹配的项列出来??

VASVASVAS 2013-09-25 06:07:44

var text = 'cat, bat, sat, fat';
var pos = text.search(/.at/);

while (pos != -1) {
alert(pos);
var pos = text.search(/.at/);
}


我这个程序有错误。。。但就是不知道应该怎么做。。。单单一个search()只能匹配第一个,我想要全部匹配掉
...全文
173 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
hch126163 2013-09-26
  • 打赏
  • 举报
回复
match(/.at/g)
zhjdg 2013-09-25
  • 打赏
  • 举报
回复
它忽略 regexp 的 lastIndex 属性
zhjdg 2013-09-25
  • 打赏
  • 举报
回复
不行哦不行哦。
  • 打赏
  • 举报
回复
search,match不会移动 exec可以 text.replace(/.at/g,function(s,i){ alert(i) }) 这样也可以获得位置
VASVASVAS 2013-09-25
  • 打赏
  • 举报
回复
但是search不行吗??我想用循环的方式
  • 打赏
  • 举报
回复
var text = 'cat, bat, sat, fat';
    var pos = text.match(/.at/g);
 
    //while (pos != -1) {
        alert(pos);
       // var pos = text.search(/.at/);
    //}
conanhhy 2013-09-25
  • 打赏
  • 举报
回复
LZ可以这样写:

var text = 'cat, bat, sat, fat';
var pos = text.match(/.at/g);
for(var i = 0; i < pos.length; i++) {
    alert(pos[i]);
}
ceclinux 2013-09-25
  • 打赏
  • 举报
回复
var text='cat, bat, sat, fat';
var re=/.at/g;
var match;
while((match=re.exec(text))!=null){
alert(match);
}
fzfei2 2013-09-25
  • 打赏
  • 举报
回复
var text = 'cat, bat, sat, fat',reg=/.at/g; while ( m= reg.exec(text)) alert( m ) 或者 text.replace(/.at/g,function(s){ alert(s) })
一起混吧 2013-09-25
  • 打赏
  • 举报
回复
引用
search() 方法不执行全局匹配,它将忽略标志 g。它同时忽略 regexp 的 lastIndex 属性,并且总是从字符串的开始进行检索,这意味着它总是返回 stringObject 的第一个匹配的位置。
while+exec不就行了

87,992

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧