var reg = /<\/?\w+\s?\/?>/ig; var test = "<em>Risk &<br />Compilance<br />Projects</em>"; test = test.replace(x, ""); alert( test );
Refactorings
No refactoring yet !
Sylvain
June 7, 2010, June 07, 2010 14:58, permalink
Your regex will break if it finds an angle bracket anywhere. There are a few other possible failures.
<[^<>]*?>
Ants
June 7, 2010, June 07, 2010 15:35, permalink
I recommend reading:
http://www.codinghorror.com/blog/2009/11/parsing-html-the-cthulhu-way.html
Consider how to deal with:
<a href="http://a.link.he.re" target="blank">Rick Roll</a>
strager
June 12, 2010, June 12, 2010 20:43, permalink
Regular expressions are bad for HTML, as @Ants mentioned. You can use the DOM to do what you want:
var element = document.createElement('div');
var test = '<em>Risk &<br />Compilance<br />Projects</em>';
element.innerHTML = test;
var plainText = element.textContent || element.innerText;
alert(plainText);
In my tests this works but I'm worried that I may be missing something.