屏蔽HTML中的script代码段

参考文章:
1) 匹配嵌套的构造(较复杂)
2) 解读C#正则表达式
3) [正则表达式] 可以解析HTML/XHTML页面的所有元素和结构的Regular Expression!



class Class1
{

string tag = @"(?:[\w-:]+)";
string attribute = @"(?:[\w-:]+)(?: (\s)*= (\s)*(?:[^\s\>\<]*|\"" [ ^\"" ]*\""|\' [^\']*\'))?";
string name = @"(?:[\w-:]+)";
string argument = @"(?:[\w-:]+|\""[\s\S]*?\""|\'[\s\S]*?\')";

string beginningTag = @"(?:\<" + tag + @"(?:\s+" +attribute + @")*\s*(?:/)?\>)";
string endingTag = @"(?:\</" + tag + @"\>)";
string xmlComment = @"(?:\<!--[\s\S]*?--\>)";
string xmlDirective = @"(?:\<!" +name + @"(?:\s+" +argument + @")*\s*\>)";
string xmlCData = @"(?:\<!\[CDATA\[(?:[\s\S]*?)\]\]\>)";
string styleBlock = @"(?:(?:\<(?:Style)(?:\s+" +attribute + @")*\s*(?:/)?\>)(?:[\s\S]*?)(?:\</(?:Style)\>))";
string scriptBlock = @"(?:(?:\<(?:script)(?:\s+" +attribute + @")*\s*(?:/)?\>)(?:[\s\S]*?)(?:\</(?:script)\>))";
string xmlLiteral = @"(?:(?:(?<blank>[ ]+)|[^ \<\>])+)";

    public static string CapText(Match m) 
   {
      return "<!--"+m.Value+"-->";
   }
 
      
 
   static void Main()
   {
      string text = "<script > jaiowjefw </script>sdfsdf<script>fdf</ScripT> .";
      string pattern = Class1.scriptblock;
 
      string result = Regex.Replace(text, pattern, new MatchEvaluator(Class1.CapText), RegexOpetion.IgnoreCase | RegexOption.Compiled);
      System.Console.WriteLine(result);
  }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值