A-A+

将代码中的HTML标签img转换为[img]url[/img]js代码

2016年01月20日 前端设计 暂无评论 阅读 6 views 次

我们利用正则把 html标签转换成ubb代码,有需要的同学可参考一下,代码如下:

  1. /<img(?:s*w*?s*=s*".+?")*?s*srcs*=s*"(.+?)"(?:s*w*?s*=s*".+?")*s*>/ig  

这段正则和匹配链接标签的正则基本一样,修改如下,标签名img,没有结束标签而是>结束,测试代码如下:

  1. <script type="text/javascript">   
  2. function replaceReg(reg,str){   
  3.  return str.replace(reg,'[img]$1[/img]')   
  4. }   
  5. var reg =   
  6. <img(?:s*w*?s*=s*".+?")*?s*srcs*=s*"(.+?)"(?:s*w*?s*=s*".+?")*s*>/ig;   
  7. var str = '我就是传说中的图片了<img src="URL">哎。';   
  8. document.write(replaceReg(reg,str)+'<br />');   
  9. </script>  

第二个是替换object代码嵌入的flash代码替换为[swf]url[/swf]。

针对原文的正则如下:

/<object[sS]*?src=([sS]+?)(?=s)[sS]*/i

如果是所有的属性都有双引号的话正则也需要修改,测试如下:

  1.  <script type="text/javascript">   
  2.  function replaceReg(reg,str){   
  3.   return str.replace(reg,'[swf]$1[/swf]')   
  4.  }   
  5.  var reg = /<object[sS]*?src=([sS]+?)(?=s)[sS]*</object>/i;   
  6.  var str = '<object classid=clsid:D27CDB6E-AE6D-11cf-96B8-444553540000   
  7. codebase=http://download.macromedia.com/pub/shockwave/cabs/flash/  
  8. swflash.cab#version=5,0,0,0 width=255 height=250><param name=movie   
  9. value=url><param name=quality value=high><embed src=url quality=high   
  10. pluginspage=http://www.macromedia.com/shockwave/download/index.cgi?  
  11. P1_Prod_Version=ShockwaveFlash type=application/x-shockwave-flash   
  12. width=255 height=250></embed></object>';   
  13.  document.write(replaceReg(reg,str)+'<br />');   
  14.  </script>  

给我留言