JavaScript正则表达式把代码中的HTML标签img转换为[img]url[/img]。
/<img(?:\s*\w*?\s*=\s*".+?")*?\s*src\s*=\s*"(.+?)"(?:\s*\w*?\s*=\s*".+?")*\s*>/ig
这段正则和匹配链接标签的正则基本一样,修改如下,标签名img,没有结束标签而是>结束。
测试代码如下:
<script type="text/javascript">
function replaceReg(reg,str){
return str.replace(reg,'
')
}
var reg =
/<img(?:\s*\w*?\s*=\s*".+?")*?\s*src\s*=\s*"(.+?)"(?:\s*\w*?\s*=\s*".+?")*\s*>/ig;
var str = '我就是传说中的图片了<img src="URL">哎。';
document.write(replaceReg(reg,str)+'<br />');
</script>
第二个是替换object代码嵌入的flash代码替换为[swf]url[/swf]。
针对原文的正则如下:
/<object[\s\S]*?src=([\s\S]+?)(?=\s)[\s\S]*<\/object>/i
如果是所有的属性都有双引号的话正则也需要修改。
测试如下:
<script type="text/javascript">
function replaceReg(reg,str){
return str.replace(reg,'[swf]$1[/swf]')
}
var reg = /<object[\s\S]*?src=([\s\S]+?)(?=\s)[\s\S]*<\/object>/i;
var str = '<object classid=clsid:D27CDB6E-AE6D-11cf-96B8-444553540000 \
codebase=http://download.macromedia.com/pub/shockwave/cabs/flash/\
swflash.cab#version=5,0,0,0 width=255 height=250><param name=movie \
value=url><param name=quality value=high><embed src=url quality=high \
pluginspage=http://www.macromedia.com/shockwave/download/index.cgi?\
P1_Prod_Version=ShockwaveFlash type=application/x-shockwave-flash \
width=255 height=250></embed></object>';
document.write(replaceReg(reg,str)+'<br />');
</script>


