RegEx, aby usunąć wszystkie style, ale pozostaw kolor i kolor tła, jeśli istnieją

Nadal nie jestem w stanie używać wyrażeń regularnych na pamięć, dlatego nie mogłem znaleźć ostatecznego rozwiązania, aby usunąć wszystkie style z <p style = ""> ... </p> używając RegEx z Javascriptem, alepozostaw kolor i kolor tła, jeśli istnieją.

Co znalazłem:

1. Usuń element complete style = "..." za pomocą RegEx:

htmlString = (htmlString).replace(/(<[^>]+) style=".*?"/i, '');


2. Usuń niektóre style za pomocą RegEx:

htmlString = (htmlString).replace(/font-family\:[^;]+;?|font-size\:[^;]+;?|line-height\:[^;]+;?/g, '');


Wyzwanie: W przypadku, gdy usuwamy wszystkie przypisane style (nie ma koloru), a styl jest pusty (mamy style = "" lub style = ""), należy również usunąć atrybut stylu.

Myślę, że potrzebujemy dwóch linii kodu?

Każda pomoc doceniona!


Przykład 1 (na białej liście „kolor” przetrwa):

<p style="font-family:Garamond;font-size:8px;line-height:14px;color:#FF0000;">example</p>

powinno stać się:

<p style="color:#FF0000;">example</p>

Przykład 2 (wszystkie style umierają):

<p style="font-family:Garamond;font-size:8px;line-height:14px;">example</p>

powinno stać się:

<p>example</p>

questionAnswers(1)

yourAnswerToTheQuestion