正則表達式處理圖片地址、img標簽的方法
再上傳表情或者圖片地址時候很多時候不能直接上傳<img src=" " />
,因此在上傳評論或者圖片之前應(yīng)該先處理一下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>
運算結(jié)果為:
<span style="font-size:14px;">圖片1[face:sanai.gif]圖片2[face:em_23.gif]圖片3[face:451.gif]</span>
這樣上傳到服務(wù)器的代碼就不會存在html標簽,這是一種很好的應(yīng)對帶有圖片評論且上傳信息禁止html標簽的方法。
接下來:
從服務(wù)器上返回的上一步中的運行結(jié)果,在反向解析,方法如下:
<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>
運行結(jié)果為:
<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頁,可以全部復(fù)制粘貼到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標簽的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
JavaScript基于正則表達式的數(shù)字判斷函數(shù)
JavaScript基于正則表達式的數(shù)字判斷函數(shù),需要的朋友可以參考下。2011-01-01關(guān)于preg_replace函數(shù)的問題講解
關(guān)于preg_replace函數(shù)的問題講解...2007-03-03用正則表達式批量為a增加target=''''_blank''''新窗口打開的方法
今天在制作模板的時候,發(fā)現(xiàn)一些頁面不是新窗口打開,有時候一些內(nèi)容新窗口打開好些,本來打算手工替換的,發(fā)現(xiàn)了太多,還是正則比較方便一些2013-12-12