要求:
当用户提交的一段内容包含script或iframe的时候,在保存进数据库之前将它们替换为""如:用户提交的内容为:
我是一个兵<iframe src=...></ifrmae>来自老百姓则希望能找到“<iframe”至“</ifrmae>”之间的字符并把它们替换为空字符串,则,要求返回的剩下:
我是一个兵来自老百姓又如:用户提交的内容包含:
我是一只
<script>
...
...
</script>
小小小鸟要替换为
我是一只
小小小鸟谢谢!不需要一个replace就替换完,我们可以使用多个replace,
比如:
string r;
r=xxx.replace(包含script的代码,"");
r=xxx.replace(包含iframe的代码,"");谢谢!

解决方案 »

  1.   

    string result=System.Text.RegularExpressions.Regex.Replace("用户提交的信息",@"<(iframe|script)\b[^>]*>[\s\S]*?</\1>","")
      

  2.   

    string s = "我是一个兵 <iframe src=...> </iframe>来自老百姓<script></script>bbb";
                s = Regex.Replace(s, @"<\s*/?iframe[^>]*>|<\s*/?script[^>]*>", "", RegexOptions.IgnoreCase);
      

  3.   

    加上忽略大小写:
    string result=Regex.Replace("用户提交的信息",@"(?i)<(iframe|script)\b[^>]*>[\s\S]*?</\1>","");
      

  4.   


            static string RemoveIframAndScript(string html)
            {
                string result = "";
                result = Regex.Replace(html, @"<script[^>]*>[\s\S]*</script>", "", RegexOptions.IgnoreCase);
                result = Regex.Replace(result, @"<iframe[^>]*>[\s\S]*</iframe>", "", RegexOptions.IgnoreCase);
                return result;
            }
      

  5.   

     private string ClearHTMLFlagStr(string htmlFlag,string s)
    {
               return Regex.Replace(s, string.Format(@"<\s*({0})[^>]*>[\S\s]*<\s*/\s*\1[^>]*>",htmlFlag), "", RegexOptions.IgnoreCase);
    }string s = "我是一个兵 <iframe src=...><script>alert(1)</script></iframe>来自老百姓<script><script>alert(1)</script></script>bbb";
                s = ClearHTMLFlagStr("iframe",s);
                s = ClearHTMLFlagStr("script",s);
      

  6.   

    < script 这种script前面有空格也要考虑
      

  7.   

    理解错误,有空格不会执行的):
    private string ClearHTMLFlagStr(string htmlFlag,string s)
    {
               return Regex.Replace(s, string.Format(@"<({0})[^>]*>[\S\s]*</\1[^>]*>",htmlFlag), "", RegexOptions.IgnoreCase);
    }//调用
    s = ClearHTMLFlagStr("iframe",s);
    s = ClearHTMLFlagStr("script",s);
      

  8.   

    html标签的<后面是不可能跟空格的
      

  9.   

    试了一下后面跟空格可以执行</script >