私は非常に大きなHTMLを持っているので、DOMツリーに解析すると時間がかかるため、「適切」であるにもかかわらず、このオプションは使用できません。タグ内のスタイル宣言をすべて削除する必要があります。
ほとんどの場合に機能するように見える正規表現があります。
> 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\');'
ご覧のとおり、適切なエスケープの有無にかかわらず、値の部分内に引用符が繰り返されている場合、正規表現は機能しません。どうすればそれを改善できるかアイデアはありますか?