I had made one div
tag and stored its contents in a variable. If this tag contains p,b
or any other tags then it should be removed from string. How
use the regular expression.
var regex = /(<([^>]+)>)/ig
var body = "<p>test</p>"
var result = body.replace(regex, "");
alert(result);
HERE IS THE DEMO
Hope this helps.
Using plain javascript you can do it as
string.replace(/(<([^>]+)>)/ig,"");
I think this is probably faster than the .text() method.
This is safer:
function plaintext(html){
return $("<div/>").html(html).text();
}
I would like to add a few things on top of the accepted answer which is suggesting the regex
var regex = /(<([^>]+)>)/ig
:
i
flag in your regex as you don't match any alphabetic character. See here: http://jsfiddle.net/66L6nfwt/2/<
and >
in your text content. See here: http://jsfiddle.net/66L6nfwt/4//<\/?\w+[^>]*\/?>/g
. See here: http://jsfiddle.net/66L6nfwt/5/Final code:
var regex = /<\/?\w+[^>]*\/?>/g,
body = "<sTrong><b>test<b></STRONG><b> sss</b><em> what if you write some maths: i < 2 && i > 4.</em>";
alert(body.replace(regex, ""));
It can also be helpful to place the function in the built-in 'String' class so you can do this directly :
"<em>test</em>".stripTags()
String.prototype.stripTags = function()
{
return this.replace(/<\/?\w+[^>]*\/?>/g, '');
};
Eventually, if your string is a DOM node, you can do alert(element.innerText || element.textContent);
which is built-in and even safer! See example here: http://jsfiddle.net/66L6nfwt/6/
You can follow this example
var stringContent = "<p>Hi dear</p><p>Wish you a happy birthday</p>";
var text = $(stringContent).text();
Solution Using JQuery:
var content = "<p>Dear Andy,</p><p>This is a test message.</p>";
var text = $(content).text();
Solution using JavaScript:
function removeTags(){
var txt = document.getElementById('myString').value;
var rex = /(<([^>]+)>)/ig;
alert(txt.replace(rex , ""));
}
Also look a this link: Strip HTML Tags in JavaScript