asp 图片正则 替换,替换前检查图片是不是本地地址的方法
程序员文章站
2024-01-28 20:59:16
直接用正则替换,但没有判断功能 function formatimg(content) dim re set re=new rege...
直接用正则替换,但没有判断功能
function formatimg(content)
dim re
set re=new regexp
re.ignorecase =true
re.global=true
re.pattern="(script)"
content=re.replace(content,"script")
re.pattern="<img.[^>]*src(=| )(.[^>]*)>"
content=re.replace(content,"<img src=$2 style=""cursor: pointer"" alt=""在新窗口中打开浏览"" onclick=""javascript:window.open(this.src);"" onload=""javascript:resizepic(this)"" border=""0""/>")
set re = nothing
formatimg = content
end function
这段代码将内容中的图片替换成 <img src=$2 style="cursor: pointer" alt="在新窗口中打开浏览" onclick="javascript:window.open(this.src);" onload="javascript:resizepic(this)" border="0"/> 这中形式的,
我现在需要提取$2的前7个字符,用来判断是否需要被替换,如果前7=特定的字符,就不要替换,但获取$2的前7 无法。大家有什么办法支下招撒?
主要是参考了下面的代码,大家可以看下
'连接
re.pattern = "\[url=(.[^\]]*)\](.[^\[]*)\[\/url]"
set strmatchs=re.execute(strcontent)
for each strmatch in strmatchs
tmpstr1=checkurl(strmatch.submatches(0))
tmpstr2=strmatch.submatches(1)
strcontent=replace(strcontent,strmatch.value,"<a target=""_blank"" href="""&tmpstr1&""">"&tmpstr2&"</a>",1,-1,0)
next
这里是正则的matchs的说明文档
//www.jb51.net/article/15362.htm
下面由测试代码,大家可以做出函数
<%
content2="<img src='//www.jb51.net/images/logo.gif' width=100 />中间一些内容<img src='http://www.kanshule.com/indeximg/logo.gif' width=200 />"
dim re
set re=new regexp
re.ignorecase =true
re.global=true
re.pattern="<img.[^>]*src(=| )(.[^>]*)[/]?>"
set matches=re.execute(content2)
for each strmatch in matches
tmpstr1=(strmatch.submatches(1))
tmpurl=replace(replace(tmpstr1,"'",""),"""","")
//response.write left(tmpurl,20)
if left(tmpurl,19)="//www.jb51.net" then
picurl=tmpurl
else
picurl="http://img.jb51.net/showpic.asp?url="&tmpurl
end if
content=replace(content2,strmatch.value,"<img src="&picurl&" style=""cursor: pointer"" alt=""在新窗口中打开浏览"" onclick=""javascript:window.open(this.src);"" onload=""javascript:resizepic(this)"" border=""0""/>")
next
response.write content
set re = nothing
%>
function formatimg(content)
dim re
set re=new regexp
re.ignorecase =true
re.global=true
re.pattern="(script)"
content=re.replace(content,"script")
re.pattern="<img.[^>]*src(=| )(.[^>]*)>"
content=re.replace(content,"<img src=$2 style=""cursor: pointer"" alt=""在新窗口中打开浏览"" onclick=""javascript:window.open(this.src);"" onload=""javascript:resizepic(this)"" border=""0""/>")
set re = nothing
formatimg = content
end function
这段代码将内容中的图片替换成 <img src=$2 style="cursor: pointer" alt="在新窗口中打开浏览" onclick="javascript:window.open(this.src);" onload="javascript:resizepic(this)" border="0"/> 这中形式的,
我现在需要提取$2的前7个字符,用来判断是否需要被替换,如果前7=特定的字符,就不要替换,但获取$2的前7 无法。大家有什么办法支下招撒?
主要是参考了下面的代码,大家可以看下
'连接
re.pattern = "\[url=(.[^\]]*)\](.[^\[]*)\[\/url]"
set strmatchs=re.execute(strcontent)
for each strmatch in strmatchs
tmpstr1=checkurl(strmatch.submatches(0))
tmpstr2=strmatch.submatches(1)
strcontent=replace(strcontent,strmatch.value,"<a target=""_blank"" href="""&tmpstr1&""">"&tmpstr2&"</a>",1,-1,0)
next
这里是正则的matchs的说明文档
//www.jb51.net/article/15362.htm
下面由测试代码,大家可以做出函数
<%
content2="<img src='//www.jb51.net/images/logo.gif' width=100 />中间一些内容<img src='http://www.kanshule.com/indeximg/logo.gif' width=200 />"
dim re
set re=new regexp
re.ignorecase =true
re.global=true
re.pattern="<img.[^>]*src(=| )(.[^>]*)[/]?>"
set matches=re.execute(content2)
for each strmatch in matches
tmpstr1=(strmatch.submatches(1))
tmpurl=replace(replace(tmpstr1,"'",""),"""","")
//response.write left(tmpurl,20)
if left(tmpurl,19)="//www.jb51.net" then
picurl=tmpurl
else
picurl="http://img.jb51.net/showpic.asp?url="&tmpurl
end if
content=replace(content2,strmatch.value,"<img src="&picurl&" style=""cursor: pointer"" alt=""在新窗口中打开浏览"" onclick=""javascript:window.open(this.src);"" onload=""javascript:resizepic(this)"" border=""0""/>")
next
response.write content
set re = nothing
%>
上一篇: php发送html格式文本邮件的方法