100分提问关于正则的问题。我快要崩溃了。

blood 2003-12-15 10:22:47
我要把[img]图象[/img]这样的UBB替换为<a href=图象 target=_blank><img src=图象></a>这样的形式,并且同时把<img src=图象>这样的也替换为<a href=图象 target=_blank><img src=图象></a>这样的形式。但是我应用后没有反应。大家帮我看看这段代码。我快要崩溃了。不知道为什么。我测试了。使用后没有反应?

public string ReplaceImage(string HtmlString)
{
Regex regImage = new Regex("\\[IMG\\](\\S+?)\\[\\/IMG\\]",RegexOptions.Compiled|RegexOptions.IgnoreCase);
regImage.Replace(HtmlString,"<a href=\"$1\" target=_blank><IMG SRC=\"$1\" border=0 alt=按此在新窗口浏览图片 onload=\"javascript:if(this.width>screen.width-333)this.width=screen.width-333\"></a>");
regImage = new Regex("<img(\\S+?)(http|https|ftp):\\/\\/(\\S+?)>",RegexOptions.Compiled|RegexOptions.IgnoreCase);
regImage.Replace(HtmlString,"<a href=\"$2//$3\" target=_blank><IMG SRC=\"$2//$1\" border=0 alt=按此在新窗口浏览图片 onload=\"javascript:if(this.width>screen.width-333)this.width=screen.width-333\"></a>");

return HtmlString;
}

大家帮我看看吧。
...全文
23 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
blood 2003-12-16
  • 打赏
  • 举报
回复
Regex regShowImage = new Regex("(<[iI][mM][gG] (\\s|.)*?)(http|https|ftp):\\/\\/(\\S+?.(gif|jpg|png|jpeg|bmp))((\\s|.)*?>)",RegexOptions.Compiled|RegexOptions.IgnoreCase);
strTemp = regShowImage.Replace(strTemp,"<a href=\"$3://$4\" target=_blank><IMG SRC=\"$3://$4\" border=0 alt=按此在新窗口浏览图片 onload=\"javascript:if(this.width>480)this.width=480\"></a>");
这个是匹配<img>里面的图象地址的。

Regex regInsertImage = new Regex("\\[img\\](\\S+?)\\[\\/img\\]",RegexOptions.Compiled|RegexOptions.IgnoreCase);
strTemp = regInsertImage.Replace(strTemp,"<IMG SRC=\"$1\">");
这个是匹配[img][/img]的
速马 2003-12-15
  • 打赏
  • 举报
回复
(\[[Ii][Mm][Gg]\])(\S+?)(\[\/[Ii][Mm][Gg]\])
Programmersheaven 2003-12-15
  • 打赏
  • 举报
回复
//不好意思,有点漏了,补全:
function doImg(src){
var left=0,right=0;
while(left>-1&&rigth>-1){
left=src.indexOf("[img]");
if(left>-1){
right=src.indexOf("[/img]");
if(right>-1)src=src.substr(0,left)+"<img src='"+src.substr(left+5,right-left-5)+src.substr(right+5)+"'>";
}
}
return src;
}
Programmersheaven 2003-12-15
  • 打赏
  • 举报
回复
可以去动网论坛那抄过来就可以用的!再不行我给做一个世界最简单易用的:

function doImg(src){
var left=0,right;
while(left>-1){
left=src.indexOf("[img]");
if(left>-1){
right=src.indexOf("[/img]");
src=src.substr(0,left)+"<img src='"+src.substr(left+5,right-left-5)+src.substr(right+5);
}
}
return src;
}
blood 2003-12-15
  • 打赏
  • 举报
回复
那<img>呢???也要这样做?
xueyhfeng 2003-12-15
  • 打赏
  • 举报
回复
先把[img]http://url[/img]中的http://url取出来,再添加到<a href=..... 里面去

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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