我有非常大的HTML,如果被解析成DOM樹,將花費更多的時間,所以這個選項儘管是「正確的」 不可。我需要刪除所有內部標籤樣式聲明。如何從JavaScript中使用正則表達式的所有標籤中刪除特定的HTML屬性?
有一個正則表達式,似乎在大多數情況下工作:
> re
/\sstyle\s*=(\"[^\">]*\"*|\'[^\'>]*\'*|[^\s>]*)/gi
> test
[ '<img src="some.jpg" style="width:auto" width="50" height="60">',
'<img style=\'width:auto\'>',
'<img style=\'width:auto>',
'<img style=width:auto>',
'<div style=\'\'>',
'<div style=\'background-image:url(\'paper.gif\');\'',
'<div style=\'background-image:url(\\\'paper.gif\\\');\'' ]
> test.forEach(function(t){console.log(t.replace(re,''))})
<img src="some.jpg" width="50" height="60">
<img>
<img>
<img>
<div>
<divpaper.gif');'
<divpaper.gif\');'
值部分內部正如你看到的,萬一有反覆行情,有或沒有適當的轉義,正則表達式沒有按沒有工作。任何想法,我可以改善它?
其實我結束了你的做法 - 讓所有的標籤,然後分析他們,我想要的方式。 – xyzman