日期:2014-05-17  浏览次数:20839 次

求一个字符串转换(正则?)的写法
比如像一个[@200741895442.jpg@][*图一*]
要在显示的时候换成
<p   align=center> <a   href= 'aa.asp?id=200741895442.jpg '   target=_blank> <img   src=200741895442.jpg> <br> 图一 </a> </p>
或是没有[*图一*]的情况下[@200741895442.jpg@]换成 <p   align=center> <a   href= 'aa.asp?id=200741895442.jpg '   target=_blank> <img   src=200741895442.jpg> </p>
要怎么写?

我现在只能写出下面这样(imgSize是设定图片大小的一个字符串)
function   edit_image(imgstr,imgSize)

imgstr   =   replace(imgstr, "[@ ", " <p   align=center> <img   "+imgSize+ "   src=/news/news_img/ ")
imgstr   =   replace(imgstr, "@][* ", "> <br> ")
imgstr   =   replace(imgstr, "*] ", " </p> ")
imgstr   =   replace(imgstr, "@] ", "> </p> ")

response.write   imgstr
end   function

不知道怎么把前面的链接那一串加进去。

我原来准备用js的replace写正则,也写不出链接,并且它只执行一次,也就是如果碰到多次情况,后面的字符不会转换。所以就转用asp写,不过也只能写成这个样子了。==
用asp的话这种情况要怎么写?直接用replace的话,我不知道怎么一次性转换并且取到图片名字做链接@@

------解决方案--------------------
<script language= "JavaScript ">
aaa= "[@200741895442.jpg@][*图一*] ";
bbb=aaa
aaa = aaa.replace(/\[\@(.*?)\@\]/gi, " <a href= 'aa.asp?$1 ' target=_blank> <img src=$1> ");
aaa = aaa.replace(/\[\*(.*?)\*\]/gi, "$1 </a> ");
alert(bbb+ ' -> '+aaa);
</script>