Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Regex to remove HTML attribute from any HTML tag (style="")?

I'm looking for a regex pattern that will look for an attribute within an HTML tag. Specifically, I'd like to find all instances of ...

style=""

... and remove it from the HTML tag that it is contained within. Obviously this would include anything contained with the double quotes as well.

I'm using Classic ASP to do this. I already have a function setup for a different regex pattern that looks for all HTML tags in a string and removes them. It works great. But now I just need another pattern for specifically removing all of the style attributes.

Any help would be greatly appreciated.

like image 395
jkupczak Avatar asked Sep 23 '11 12:09

jkupczak


5 Answers

Perhaps a simpler expression is

 style="[^\"]*"

so everything between the double quotes except a double quote.

like image 51
CpILL Avatar answered Oct 10 '22 17:10

CpILL


In visual studio find and replace, this is what i do to remove style and class attributes:

\s*style|class="[^"]*\n*"

This removes the beginning spaces and style and class attributes. It looks for anything except a double quote in these attributes and then newline(s), in case if it spreads out to new lines, and lastly adds the closing double quote

like image 45
PersyJack Avatar answered Sep 19 '22 08:09

PersyJack


I think this might do it:

/style="[a-zA-Z0-9:;\.\s\(\)\-\,]*"/gi

You could also put these in capturing groups, if you wanted to replace some parts only

/(style=")([a-zA-Z0-9:;\.\s\(\)\-\,]*)(")/gi

Working Example: http://regexr.com?2up30

like image 24
Jason Gennaro Avatar answered Oct 10 '22 18:10

Jason Gennaro


I tried Jason Gennaro's regular expression and slightly modified it

/style="[a-zA-Z0-9:;&\."\s\(\)\-\,]*|\\/ig

This regular expression captures some specific cases with &quot inside the string for example

 <div class="frame" style="font-family: Monaco, Consolas, &quot;Courier New&quot;, monospace; font-size: 12px; background-color: rgb(245, 245, 245);">some text</div>
like image 1
Nataly S'omka Avatar answered Oct 10 '22 16:10

Nataly S'omka


Try this, it will replace style attribute and it's value completely

const regex = /style="(.*?)"/gm;
const str = `<div class="frame" style="font-family: Monaco, Consolas, &quot;Courier New&quot;, monospace; font-size: 12px; background-color: rgb(245, 245, 245);">some text</div>`;
const subst = ``;

// The substituted value will be contained in the result variable
const result = str.replace(regex, subst);

console.log('Substitution result: ', result);
like image 1
Sachin Gaur Avatar answered Oct 10 '22 17:10

Sachin Gaur