<%
Str = "<img src='图片地址' alt='3.jpg' /> <img alt=说明 src='1.jpg'/> <img src='2.jpg'/>"
Set regEx = New RegExp '建立正则表达式。
regEx.Pattern = "(<img)(.[^<>]*)(src=)('|"&CHR(34)&"| )?(.[^'|\s|"&CHR(34)&"]*)(\.)(jpg|gif|png|bmp|jpeg)('|"&CHR(34)&"|\s|>)(.[^>]*)(>)" '设置模式。
regEx.IgnoreCase = True '设置是否区分字符大小写。
regEx.Global = True '设置全局可用性。
Set Matches = regEx.Execute(Str) '执行搜索。
For Each Match in Matches '遍历匹配集合。
'输入图片地址
Response.Write Match.SubMatches(4)&"."&Match.SubMatches(6)&"<br>"
Next
%>比如我做一个新闻发布系统,首页有图片新闻,我想从发布的文章中提取出第一张图片,然后在首页显示。
请高手指导。。。
问题补充:我自己写了一个,大家帮忙找下不足哈。
<script language="javascript">
var pic;
var str = 'e,qwe,qwe<img alt=sdfsf src="asdasdasd.jpg" />qwe,q,we';
var newarray = new Array();
newarray = str.split("<img");
newarray = newarray[1].split("src=");
newarray = newarray[1].split("/>");
newarray = newarray[0].split(" ");
pic = newarray[0];
pic = pic.replace("\"","").replace("\"","");
pic = pic.replace("\'","").replace("\'","");
document.write (pic);
</script>
答案
<iframe id="editor" width="90%" height="100"></iframe> <script>editor.document.designMode="on";</script><input type="button" value="获取图片" />
<script type="text/Javascript">
<!--
function getImg()
{
var str_img = editor.document.body.innerHTML.replace(/[\s\S]*?src=[\'\"\s]*?(http:\/\/[a-z\d\._\-\/\%]*)[\'\"\s]*?/igm, '$1,');
var imgs = str_img.split(',');
str_img = '';
for (var i=0;i<imgs.length-1;i++)
{
if (imgs[i].indexOf('http://')==0)
{
if (i>0)str_img += ',';
str_img += imgs[i];
}
}
editor.document.body.innerHTML=(str_img);
}
//-->
</script>
-
保存图片的SRC地址
asp+access+sql 2007-11-18 19:48 阅读3 评论0 字号: 大大 中中 小小
方法1
content=sContent1
regstr="src\=.+?\.(gif|jpg)"
url=Replace(Replace(Replace(RegExp_Execute(regstr?content)?"'"?"")?""""?"")?"src="?"")
Response.Write(url)
Response.end
'返回匹配值
Function RegExp_Execute(patrn? strng)
Dim regEx? Match? Matches?values '建立变量。
Set regEx = New RegExp '建立正则表达式。
regEx.Pattern = patrn '设置模式。
regEx.IgnoreCase = true '设置是否区分字符大小写。
regEx.Global = True '设置全局可用性。
Set Matches = regEx.Execute(strng) '执行搜索。
For Each Match in Matches '遍历匹配集合。
values=values&Match.Value&"?"
Next
RegExp_Execute = values
End Function
方法2
以下为代码部分:
C
response.write savepic(Content)
response.end()
function savepic(str)
content=str&""
regstr="src\=.+?\.(gif|jpg)"
url=Replace(Replace(Replace(RegExp_Execute(regstr?content)?"'"?"")?""""?"")?"src="?"")
savepic=url
end function
Function RegExp_Execute(patrn? strng)
Dim regEx? Match? Matches?values '建立变量。
Set regEx = New RegExp '建立正则表达式。
regEx.Pattern = patrn '设置模式。
regEx.IgnoreCase = true '设置是否区分字符大小写。
regEx.Global = True '设置全局可用性。
Set Matches = regEx.Execute(strng) '执行搜索。
For Each Match in Matches '遍历匹配集合。
values=values&Match.Value&"?"
Next
RegExp_Execute = values
End Function
方法3
以下为代码部分:
http://[a-z0-9A-Z.?/_]*.(jpg|jpeg|gif|png)
php方法
今天继续编写新网站下的文章发布系统,其中需要一个功能,就是显示焦点新闻中的图片,本来可以在录入时单独上传一个与新闻搭配的图片,这是最简单的,但为了给自己一个挑战,我打算做成录入带有图片的新闻后,程序会自动提取正文中的第一个图片的地址,鼓捣了半天,成果如下:
$p = '/]+)src="([^"]+)"([^\/>]+)\/>/is';
$f = preg_match($p?$c?$re);
echo $re[2];
此需求的难点在于,通过FCKeditor添加的图片中,其alt属性的位置是不固定的:
以下为代码部分:
<img src="url" alt="" />或<img alt="" src="url" />
因此,正则表达式必须完全兼容这2种情况
【转载】http://www.cnblogs.com/sbdx/archive/2006/11/04/550213.html
<%
'str="<a href=""post.php?action=newthread&fid=2&extra=page%3D1""><img alt='123' src=""http://127.0.0.1/images/blue/newtopic.gif"" border=""0"" alt="""" /></a><img src=""/customavatars/user.gif"" vspace=""5""><br /><img src=""/customavatars/user.gif"" vspace=""5""><img src=""images/blue/top.gif"" border=""0"" alt=""顶部"" />"
str="<img src=images/200610261533.jpg><img src=""images/200609151656.jpg""><img src=images/200609051735.JPG>"
response.write(GetImgSrc(str))
function GetImgSrc(str) '取得img 标签内容
dim tmp
Set objRegExp = New Regexp
objRegExp.IgnoreCase = True '忽略大小写
objRegExp.Global = false '全文搜索 !关键!
objRegExp.Pattern = "<img (.*?)src=(.[^\[^>]*)(.*?)>"
Set Matches =objRegExp.Execute(str)
For Each Match in Matches
tmp=tmp & Match.Value
Next
GetImgSrc=getimgs(tmp)
end function
function getimgs(str)'取得
Set objRegExp1 = New Regexp
objRegExp1.IgnoreCase = True '忽略大小写
objRegExp1.Global = True '全文搜索
objRegExp1.Pattern = "src=.+[(gif|jpg|png)]+" '表达式
set mm=objRegExp1.Execute(str)
For Each Match1 in mm
imgsrc=Match1.Value
'也许存在不能过滤的字符,确保万一
imgsrc=replace(imgsrc,"""","")
imgsrc=replace(imgsrc,"src=","")
imgsrc=replace(imgsrc,"<","")
imgsrc=replace(imgsrc,">","")
imgsrc=replace(imgsrc,"img","")
imgsrc=replace(imgsrc," ","")
getimgs=getimgs&imgsrc'把里面的地址串起来备用
next
end function
%>
:<img src=image/ad1.gif width="128" height="36"/><img src='image/ad2.gif' width="128" height="36" />
正则表达式:<img[\s]+src[\s]*=[\s]*((['"](?<src>[^'"]*)[\'"])|(?<src>[^\s]*))
提取的结果:
image/ad1.gif
image/ad2.gif<iframe id="editor" width="90%" height="100"></iframe> <script>editor.document.designMode="on";</script><input type="button" value="获取图片" />
<script type="text/javascript">
<!--
function getImg()
{
var str_img = editor.document.body.innerHTML.replace(/[\s\S]*?src=[\'\"\s]*?(http:\/\/[a-z\d\._\-\/\%]*)[\'\"\s]*?/igm, '$1,');
var imgs = str_img.split(',');
str_img = '';
for (var i=0;i<imgs.length-1;i++)
{
if (imgs[i].indexOf('http://')==0)
{
if (i>0)str_img += ',';
str_img += imgs[i];
}
}
editor.document.body.innerHTML=(str_img);
}
//-->
</script>
//******************
博客加了一个版面,浏览模式,需要出文章中提取一张图片做预览吧。图片可以过虑,文字就过虑不掉了。还不能全部显示,就显示一张,这搞的我的头大啊。
上百度,GOOGLE查了一上午的资料终于搞定。
下面是这个函数:
'==================================================
'过程名:GetImg
'作 用:取得文章中第一张图片
'参 数:str ------ 文章内容
'参 数:strpath ------ 保存图片的路径
'==================================================
Function GetImg(str,strpath)
set objregEx = new RegExp
objregEx.IgnoreCase = true
objregEx.Global = true
zzstr=""&strpath&"(.+?)\.(jpg|gif|png|bmp)"
objregEx.Pattern = zzstr
set matches = objregEx.execute(str)
for each match in matches
retstr = retstr &"|"& Match.Value
next
if retstr<>"" then
Imglist=split(retstr,"|")
Imgone=replace(Imglist(1),strpath,"")
GetImg=Imgone
else
GetImg=""
end if
end function
但是它只能取 后缀 不能取html里的<img>所以我们需要加上正侧
Function GetImg(str)
dim objregEx,zzstr,matches,Match,retstr,Imglist,Imgone,strpath
set objregEx = new RegExp
objregEx.IgnoreCase = true
objregEx.Global = true
zzstr="<img(.+?)\.(jpg|gif|png|bmp)(.+?)>"
objregEx.Pattern = zzstr
set matches = objregEx.execute(str)
for each match in matches
retstr = retstr &"|"& Match.Value
next
if retstr<>"" then
Imglist=split(retstr,"|")
Imgone=replace(Imglist(1),strpath,"")
GetImg=Imgone
else
GetImg=""
end if
end function
调用的时候 只需要 <%=GetImg(rs("字段"))%>