怎样用正则表达式提取网页源码中所有的图片来源?
自己写了个测试的,有错.
var img = "asdfasdf<IMG alt=\"\" hspace=0 src=\"file:///G:/home/My%20Documents/水晶论坛.files/messages2.gif\" align=baseline border=0sdfsadffasd<IMG alt=\"\" hspace=0 src=\"G:\\home\\My Documents\\水晶论坛.files\\forum23.gif\" align=baseline border=0>";
var pattern = /<IMG.*src=\"(.*)\"[^>]*>/ig;
var myArray = pattern.exec(img);
for(var i=0;i<myArray.length;i++)
document.writeln(i+" = "+myArray[i]+"<br>");
//document.write(pattern.rightContext);// 这句话返回undefined,奇怪
var myArray2 = pattern.exec(img);
for(var i=0;i<myArray2.length;i++)
document.writeln(i+" = "+myArray2[i]+"<br>");
只能解出第二个img的src,第一个为什么会被跳过呢?
问题点数:20、回复次数:7Top
1 楼ni_ch(泥巴)回复于 2003-08-01 08:25:49 得分 0
知道怎么做了,呵呵Top
2 楼kypfos(不在寻梦)回复于 2003-08-01 08:41:38 得分 0
为什么要用正则表达式呢?页面本来就有一个images对象数组
document.images.length
document.images[0].........Top
3 楼ni_ch(泥巴)回复于 2003-08-01 12:47:08 得分 0
是个编辑框,里面有html源代码,这种情况也可以吗?Top
4 楼liusong1234(刘松)回复于 2003-09-19 11:41:58 得分 10
改为非贪婪(greedy)模式:
var pattern = /<IMG.*?src=\"(.*?)\"[^>]*?>/ig;Top
5 楼liusong1234(刘松)回复于 2003-09-19 12:34:50 得分 10
*,+,?会尽力匹配后面的东东,即使碰到了src=也去匹配,而不让src=\"去匹配,这叫贪婪(greedy).
后面加个?就不贪了。
昨天学到的。Top
6 楼liusong1234(刘松)回复于 2003-09-19 12:38:28 得分 0
这台机子ie5.0,用*?脚本出错,升级ing...Top
7 楼boystones(独孤一剑)回复于 2003-09-19 12:56:11 得分 0
关注,学习Top




