var text = "bat,cat,sat,fat"; var p = /.at/igm; var m = text.match(p); alert(m);
<script> var text = "bat,cat,sat,fat"; var p = /.at/igm; var m = text.match(p); //var m = p.exec(text);for (i=0;i<m.length ;i++ ) { window.alert(m[i]) } ;</script>
原来数组是可以直接alert的。
alert也是调的toString() 回想一下object
但是alert一个object会显示[object Object],所以我以为数组也要一个个分解
+1 其实你用split(',') 就不错!!
var text = "bat,cat,sat,fat"; var p = /.at/ig; while(p.lastIndex<text.length) { var m = p.exec(text); alert(m); }
var text = "bat,cat,sat,fat"; var p = /.at/igm; var m = text.match(p); alert(m); 或var text = "bat,cat,sat,fat"; var p = /.at/igm; var m; while((m = p.exec(text)) !== null){ alert(m); }
为什么var m = p.exec(text);不能返回所有匹配(bat cat sat fat),而只返回了第一个匹配(bat)呢?如何才能使exec方法与text.match(p)达到相同的效果?
8楼写法不严格 var text = "bat,cat,sat,fat", p = /.(a)t/igm, result = [], m; while((m = p.exec(text)) !== null){ result.push(m[0]); } alert(result);这个能达到和match一样的效果,但是如果是这么简单的正则,没必要用exec,因为你根本没用到exec比match多出的功能。。
var text = "bat,cat,sat,fat";
var p = /.at/igm;
var m = text.match(p);
alert(m);
var text = "bat,cat,sat,fat";
var p = /.at/igm;
var m = text.match(p);
//var m = p.exec(text);for (i=0;i<m.length ;i++ )
{
window.alert(m[i])
}
;</script>
+1
其实你用split(',')
就不错!!
var text = "bat,cat,sat,fat";
var p = /.at/ig;
while(p.lastIndex<text.length)
{
var m = p.exec(text);
alert(m);
}
var p = /.at/igm;
var m = text.match(p);
alert(m); 或var text = "bat,cat,sat,fat";
var p = /.at/igm;
var m;
while((m = p.exec(text)) !== null){
alert(m);
}
p = /.(a)t/igm,
result = [],
m;
while((m = p.exec(text)) !== null){
result.push(m[0]);
}
alert(result);这个能达到和match一样的效果,但是如果是这么简单的正则,没必要用exec,因为你根本没用到exec比match多出的功能。。