私は正規表現の初心者で、必要な(src/href/style)属性のみをその値で保持し、不要な属性を削除しようとします。グーグルでいる間、私は唯一の「SRC」属性を維持するために正規表現を発見し、それゆえ私の修正式は次のとおりです。JavaScriptを使用してhtmlタグから不要な属性を取り除くRegEx
<([a-z][a-z0-9]*)(?:[^>]*(\s(src|href|style)=['\"][^'\"]*['\"]))?[^>]*?(\/?)>
その細かい作業が、1つのタグには、それを複数の必要な属性が含まれている場合、唯一の問題は、あります最後に一致した単一の属性のみを保持し、残りを破棄します。
私は、置換文字列として<$1$2$4>
と、前述の式を使用してhttps://regex101.com/#javascriptでテキスト
<title>Hello World</title>
<div fadeout"="" style="margin:0px;" class="xyz">
<img src="abc.jpg" alt="" />
<p style="margin-bottom:10px;">
The event is celebrating its 50th anniversary Kö
<a style="margin:0px;" href="http://www.germany.travel/">exhibition grounds in Cologne</a>.
</p>
<p style="padding:0px;"></p>
<p style="color:black;">
<strong>A festival for art lovers</strong>
</p>
</div>
に従い、次の出力を得ることをきれいにしようとしている:
<title>Hello World</title>
<div style="margin:0px;">
<img src="abc.jpg"/>
<p style="margin-bottom:10px;">
The event is celebrating its 50th anniversary Kö
<a href="http://www.germany.travel/">exhibition grounds in Cologne</a>.
</p>
<p style="padding:0px;"></p>
<p style="color:black;">
<strong>A festival for art lovers</strong>
</p>
</div>
問題は、「スタイル」属性がから廃棄されますアンカータグ。 * operator、{3}セレクタを使ってブロック(\s(src|href|style)=['\"][^'\"]*['\"])
を複製しようとしましたが、はるかに無駄です。 提案がありますか?
私はテストのためRegexBuddyを使用して提案することができます表現。私は過去に多くの時間を節約しました。 https://www.regexbuddy.com/ –
参照のため、OPのコードはhttps://regex101.com/r/mP0pX6/1にあります。 –
RegEXの代わりにDOM操作を使用してみませんか? –