正则表达式处理图片地址、img标签的方法

所属分类: 网络编程 / 正则表达式 阅读数: 1509
收藏 0 赞 0 分享

再上传表情或者图片地址时候很多时候不能直接上传<img src=" " />,因此在上传评论或者图片之前应该先处理一下img标签。举例如下,希望可以帮助更多的程序猿~

<span style="font-size:14px;">//第一步是获取到带有img标签的字符串 
var str = '图片1<img src="arclist/sanai.png">图片2<img src="arclist/em_23.gif">图片3<img src="arclist/451.gif">';</span> 

处理获取到的字符串

<span style="font-size:14px;">//将img标签替换为特定编码方式的表达式 
var reg = /<img[^>]*src[=\"\'\s]+[^\.]*\/([^\.]+)\.[^\"\']+[\"\']?[^>]*>/gi; 
str = str.replace(reg, "[face:$1.gif]"); 
console.log(str);</span> 

运算结果为:

<span style="font-size:14px;">图片1[face:sanai.gif]图片2[face:em_23.gif]图片3[face:451.gif]</span> 

这样上传到服务器的代码就不会存在html标签,这是一种很好的应对带有图片评论且上传信息禁止html标签的方法。

接下来:

从服务器上返回的上一步中的运行结果,在反向解析,方法如下:

<span style="font-size:14px;">//将特定编码方式替换成img标签的表达式 
var regg = /
face:([\w]+).gif
/gi; 
str = str.replace(regg,"<img src='images/$1.gif' />"); 
console.log(str);</span> 

运行结果为:

<span style="font-size:14px;">图片1<img src='images/sanai.gif' />图片2<img src='images/em_23.gif' />图片3<img src='images/451.gif' /></span> 

下面附上代码的html页,可以全部复制粘贴到html文件中直接运行,亲测可用

<span style="font-size:14px;"><!DOCTYPE html> 
<html> 
 <head> 
  <meta charset="UTF-8"> 
  <title></title> 
 </head> 
 <body> 
  <script> 
   var str = '图片1<img src="arclist/sanai.png">图片2<img src="arclist/em_23.gif">图片3<img src="arclist/451.gif">'; 
   //将img标签替换为特定编码方式的表达式 
   var reg = /<img[^>]*src[=\"\'\s]+[^\.]*\/([^\.]+)\.[^\"\']+[\"\']?[^>]*>/gi; 
   str = str.replace(reg, "[face:$1.gif]"); 
   console.log(str); 
   //将特定编码方式替换成img标签的表达式 
   var regg = /
face:([\w]+).gif
/gi; 
   str = str.replace(regg,"<img src='images/$1.gif' />"); 
   console.log(str); 
  </script> 
 </body> 
</html></span> 

以上两种方法很好的解决的对img标签的正反运算,第一种方法为之前收集,不记得原作者,如有冒犯可以提出署名。后一种方法为本人自写,存在一定的局限性,欢迎大家讨论~

以上所述是小编给大家介绍的正则表达式处理图片地址、img标签的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

更多精彩内容其他人还在看

js中过滤特殊字符的正则表达式

js中用正则表达式 过滤特殊字符 ,校验所有输入域是否含有特殊符号
收藏 0 赞 0 分享

简单的用js实现过滤多余字符的正则表达式

利用正则表达法除去字符串中的重复字符,一个简单的JavaScript正则表达式实例,将一串含有重复字符串中的多余字符滤除掉,请运行查看效果。
收藏 0 赞 0 分享

校验普通电话、传真号码的正则表达式(可以+开头,除数字外,可含有-)

校验普通电话、传真号码:可以“+”开头,除数字外,可含有“-”
收藏 0 赞 0 分享

正则表达式匹配中文与双字节的代码

匹配中文字符与匹配双字节字符的代码,需要的朋友可以参考下。
收藏 0 赞 0 分享

精通JS正则表达式(推荐)

精通JS正则表达式,讲的比较详细,学习正则表达式的朋友可以参考下。
收藏 0 赞 0 分享

用Java正则去掉字符串中重复出现的字符

abcde 顺序可以不一样,也就是去掉重复出现的字符
收藏 0 赞 0 分享

JavaScript常用的正则表达式表单验证代码

验证表单的不同内容用的是不同的正则表达式。客户端验证常用的几个。
收藏 0 赞 0 分享

JavaScript RegExp 正则表达式对象详细说明

RegExp 对象表示正则表达式,它是对字符串执行模式匹配的强大工具。
收藏 0 赞 0 分享

一个正则表达式的看法(?:)

下午和kindle聊天的时候,他让我看一个正则,问我知不知道其中?:的作用,以偶半瓶水的正则功力,不知道杂解释给他听了,单个一个还好理解,一起就不明白了,起码我是没用过..查了下资料,说说我的看法..
收藏 0 赞 0 分享

用于过滤空白字符的几种常见的js正则表达式pattern

用于过滤空白字符的几种常见的正则表达式pattern——在JavaScript中的表现形式
收藏 0 赞 0 分享
查看更多