.NET Remove/Strip JavaScript and CSS code blocks from HTML page
The quick 'n' dirty method would be a regex like this:
var regex = new Regex(
"(\\<script(.+?)\\</script\\>)|(\\<style(.+?)\\</style\\>)",
RegexOptions.Singleline | RegexOptions.IgnoreCase
);
string ouput = regex.Replace(input, "");
The better* (but possibly slower) option would be to use HtmlAgilityPack:
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(htmlInput);
var nodes = doc.DocumentNode.SelectNodes("//script|//style");
foreach (var node in nodes)
node.ParentNode.RemoveChild(node);
string htmlOutput = doc.DocumentNode.OuterHtml;
*) For a discussion about why it's better, see this thread.
Use HTMLAgilityPack for better results
or try this function
public string RemoveScriptAndStyle(string HTML)
{
string Pat = "<(script|style)\\b[^>]*?>.*?</\\1>";
return Regex.Replace(HTML, Pat, "", RegexOptions.IgnoreCase | RegexOptions.Singleline);
}