正則替換HTML里的style屬性


一個網友問:

<p class="a" style="font-size: 12pt;  font-family: ""; color: red;">a</p>

如何替換成:

<p class="a" >a</p>

以為So easy,寫個正則匹配一下就OK了,

/style="[^"]*?"/g

結果生成結果如下:

<p class="a" "; color: red;">a</p>

原來忽略了style="中間有雙引號"

琢磨后,

改進了正則表達式:

var a=`<p class="a" style="font-size: 12pt;  font-family: ""; color: red;">a</p>`

var reg4 = /style="[^=]*?"([(\s+\w+=)|>])/g

a.replace(reg4,'$1')

最終生成結果:

<p class="a" >a</p>

"和>之間還多了一個空格。基本上達到了要求。

 

原理,style后的內容非貪婪匹配,以一個=號或是>號結尾,后面那部分要用分組($1)替換回來

 

20190107,反饋有問題,改進:

 var a=` <span style="font-family: "Times New Roman";" class="abc">`
var reg4 = /style="[^=>]*"([(\s+\w+=)|>])/g
a.replace(reg4,'$1') 

 把非貪婪匹配改為了貪婪匹配。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM