PHP strip_tags() function equivalent in Javascript
Strip_tags function in php removes all html tags except the allowed tags from a given string. I did some Online search and could find a coupleof functions that were able to do this task.
Here are few JS functions that does Strip_tags function
Here's the strip_tags() with allowable tags
Simple function using DOM
this function removes all occurances of tag which is specified as second parameter to the function
Here is another function which is able to remove all HTML tags . You can also specify allowed tags.
Ref: http://phpjs.org/functions/strip_tags/
Strip_tags function in php removes all html tags except the allowed tags from a given string. I did some Online search and could find a coupleof functions that were able to do this task.
Here are few JS functions that does Strip_tags function
Here's the strip_tags() with allowable tags
function strip_tags(str, allow) {
// making sure the allow arg is a string containing only tags in lowercase ()
allow = (((allow || "") + "").toLowerCase().match(/<[a-z][a-z0-9]*>/g) || []).join('');
var tags = /<\/?([a-z][a-z0-9]*)\b[^>]*>/gi;
var commentsAndPhpTags = /|<\?(?:php)?[\s\S]*?\?>/gi;
return str.replace(commentsAndPhpTags, '').replace(tags, function ($0, $1) {
return allow.indexOf('<' + $1.toLowerCase() + '>') > -1 ? $0 : '';
});
}
//taken from phpjs.org
// making sure the allow arg is a string containing only tags in lowercase (
var tags = /<\/?([a-z][a-z0-9]*)\b[^>]*>/gi;
var commentsAndPhpTags = /|<\?(?:php)?[\s\S]*?\?>/gi;
return str.replace(commentsAndPhpTags, '').replace(tags, function ($0, $1) {
return allow.indexOf('<' + $1.toLowerCase() + '>') > -1 ? $0 : '';
});
}
//taken from phpjs.org
Simple function using DOM
this function removes all occurances of tag which is specified as second parameter to the function
function stripTags(el, tagName) {
var els = el.getElementsByTagName(tagName.toUpperCase());
for (var i = 0; i < els.length; i++) { while (els[i].firstChild) els[i].parentNode.insertBefore(els[i].removeChild(els[i].firstChild), els[i]); els[i].parentNode.removeChild(els[i--]); }
}
var els = el.getElementsByTagName(tagName.toUpperCase());
for (var i = 0; i < els.length; i++) { while (els[i].firstChild) els[i].parentNode.insertBefore(els[i].removeChild(els[i].firstChild), els[i]); els[i].parentNode.removeChild(els[i--]); }
}
Here is another function which is able to remove all HTML tags . You can also specify allowed tags.
function strip_tags(html){
//PROCESS STRING
if(arguments.length < 3) { html=html.replace(/<\/?(?!\!)[^>]*>/gi, '');
} else {
var allowed = arguments[1];
var specified = eval("["+arguments[2]+"]");
if(allowed){
var regex='</?(?!(' + specified.join('|') + '))\b[^>]*>';
html=html.replace(new RegExp(regex, 'gi'), '');
} else{
var regex='</?(' + specified.join('|') + ')\b[^>]*>';
html=html.replace(new RegExp(regex, 'gi'), '');
}
}
var clean_string = html;
return clean_string;
}
//PROCESS STRING
if(arguments.length < 3) { html=html.replace(/<\/?(?!\!)[^>]*>/gi, '');
} else {
var allowed = arguments[1];
var specified = eval("["+arguments[2]+"]");
if(allowed){
var regex='</?(?!(' + specified.join('|') + '))\b[^>]*>';
html=html.replace(new RegExp(regex, 'gi'), '');
} else{
var regex='</?(' + specified.join('|') + ')\b[^>]*>';
html=html.replace(new RegExp(regex, 'gi'), '');
}
}
var clean_string = html;
return clean_string;
}
Ref: http://phpjs.org/functions/strip_tags/