再上传表情或者图片地址时候很多时候不能直接上传<img src=" " />
,因此在上传评论或者图片之前应该先处理一下img标签。举例如下,希望可以帮助更多的程序猿~
1
2
|
<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>
|
处理获取到的字符串
1
2
3
4
|
<span style= "font-size:14px;" > //将img标签替换为特定编码方式的表达式
var reg = /<img[^>]*src[=\ "\'\s]+[^\.]*\/([^\.]+)\.[^\"\']+[\"\']?[^>]*>/gi;
str = str.replace(reg, " [face:$1.gif]");
console.log(str);</span>
|
运算结果为:
1
|
<span style= "font-size:14px;" >图片1[face:sanai.gif]图片2[face:em_23.gif]图片3[face:451.gif]</span>
|
这样上传到服务器的代码就不会存在html标签,这是一种很好的应对带有图片评论且上传信息禁止html标签的方法。
接下来:
从服务器上返回的上一步中的运行结果,在反向解析,方法如下:
1
2
3
4
5
6
|
<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>
|
运行结果为:
1
|
<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文件中直接运行,亲测可用
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
<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标签的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!
原文链接:http://blog.csdn.net/sanai_1992/article/details/71560995