当前位置:编程学习 > C#/ASP.NET >>

截取问题

通过FCK编辑器发布到数据库的新闻内容在前台显示的时候怎么样除去数据前面的特殊字符,我通过解码再截取字符还是不行的;比如这是一条通过FCK编辑器发布的新闻内容:
<span style="font-size: small">白电、黑电这两个词汇被越来越多的家电商家、媒体和消费者提及,那你真的知道什么是白电,什么是黑电吗?</span>
<p><span style="font-size: small">  记者调查发现,即便在</span><a href="http://news.jc001.cn/keyId-225883/"><span style="font-size: small">家电商界</span></a><span style="font-size: small">,很多人都是靠家电外壳的颜色,来判断黑电、白电,认为&ldquo;外壳是白色的电器就是白电,比如冰箱、洗衣机、冰柜等;而外壳是黑色的电器,应该就是黑电,包括电视机等。&rdquo;</span></p>
<p><span style="font-size: small">  虽然依此判断,很多种家电的黑、白类别倒是没错,但分法本身却是错误的。</span></p>
<p><span style="font-size: small">  正解:白电和黑电是中国的分类方法,是有明显区别的:白电产品是减轻人们的劳动强度(如洗衣机、部分</span><a href="http://news.jc001.cn/keyId-957/"><span style="font-size: small">厨房电器</span></a><span style="font-size: small">)、改善生活环境提高物质生活水平(如空调、电冰箱等);而</span><a href="http://news.jc001.cn/keyId-225884/"><span style="font-size: small">黑电产品</span></a><span style="font-size: small">是带给人们娱乐、休闲的。</span></p>
<p><span style="font-size: small">  从其工作原理和核心零部件来区分黑白电也可以,白电更多的是通过电机将电能转换为热能、动能进行工作的;而黑电更多的是通过</span><a href="http://news.jc001.cn/keyId-122290/"><span style="font-size: small">电子元器</span></a><span style="font-size: small">件、电路板等。</span></p> --------------------编程问答-------------------- Server.HTMLEncode()
Server.HTMLDecode() --------------------编程问答-------------------- 我就是那样写的不行的 --------------------编程问答-------------------- 如果发布新闻的时候前面有好多张图片呢 我是这样发布新闻的,首先在Word中排版好再复制粘贴到FCK编辑器中发布的 前台显示的时候就是显示不出来 ,用断点调试时前面有好多特殊字符的时候只能读取出几个字,我都截取了200字呢 ! --------------------编程问答-------------------- 接分! --------------------编程问答-------------------- 过滤HTML,在substring
或div.InnerHtml=""等显示 --------------------编程问答-------------------- 我这样过滤了不行的:
//字符串过滤:
    public static string cutBadStr(string inputStr)
    {
        inputStr = inputStr.ToLower().Replace(",", "");
        inputStr = inputStr.ToLower().Replace("<", "");
        inputStr = inputStr.ToLower().Replace(">", "");
        inputStr = inputStr.ToLower().Replace("%", "");
        inputStr = inputStr.ToLower().Replace(".", "");
        inputStr = inputStr.ToLower().Replace(":", "");
        inputStr = inputStr.ToLower().Replace("#", "");
        inputStr = inputStr.ToLower().Replace("&", "");
        inputStr = inputStr.ToLower().Replace("$", "");
        inputStr = inputStr.ToLower().Replace("^", "");
        inputStr = inputStr.ToLower().Replace("*", "");
        inputStr = inputStr.ToLower().Replace("`", "");
        inputStr = inputStr.ToLower().Replace("'", "");
        inputStr = inputStr.ToLower().Replace("~", "");
        inputStr = inputStr.ToLower().Replace("or", "");
        inputStr = inputStr.ToLower().Replace("and", "");
        return inputStr;
    }
    //Html标记过滤
    private string checkStr(string html)
    {
        System.Text.RegularExpressions.Regex regex1 = new System.Text.RegularExpressions.Regex(@"<script[\s\S]+</script *>", System.Text.RegularExpressions.RegexOptions.IgnoreCase);
        System.Text.RegularExpressions.Regex regex2 = new System.Text.RegularExpressions.Regex(@" href *= *[\s\S]*script *:", System.Text.RegularExpressions.RegexOptions.IgnoreCase);
        System.Text.RegularExpressions.Regex regex3 = new System.Text.RegularExpressions.Regex(@" no[\s\S]*=", System.Text.RegularExpressions.RegexOptions.IgnoreCase);
        System.Text.RegularExpressions.Regex regex4 = new System.Text.RegularExpressions.Regex(@"<iframe[\s\S]+</iframe *>", System.Text.RegularExpressions.RegexOptions.IgnoreCase);
        System.Text.RegularExpressions.Regex regex5 = new System.Text.RegularExpressions.Regex(@"<frameset[\s\S]+</frameset *>", System.Text.RegularExpressions.RegexOptions.IgnoreCase);
        System.Text.RegularExpressions.Regex regex6 = new System.Text.RegularExpressions.Regex(@"\<img[^\>]+\>", System.Text.RegularExpressions.RegexOptions.IgnoreCase);
        System.Text.RegularExpressions.Regex regex7 = new System.Text.RegularExpressions.Regex(@"</p>", System.Text.RegularExpressions.RegexOptions.IgnoreCase);
        System.Text.RegularExpressions.Regex regex8 = new System.Text.RegularExpressions.Regex(@"<p>", System.Text.RegularExpressions.RegexOptions.IgnoreCase);
        System.Text.RegularExpressions.Regex regex9 = new System.Text.RegularExpressions.Regex(@"<[^>]*>", System.Text.RegularExpressions.RegexOptions.IgnoreCase);
        html = regex1.Replace(html, ""); //过滤<script></script>标记
        html = regex2.Replace(html, ""); //过滤href=javascript: (<A>) 属性
        html = regex3.Replace(html, " _disibledevent="); //过滤其它控件的on...事件
        html = regex4.Replace(html, ""); //过滤iframe
        html = regex5.Replace(html, ""); //过滤frameset
        html = regex6.Replace(html, ""); //过滤frameset
        html = regex7.Replace(html, ""); //过滤frameset
        html = regex8.Replace(html, ""); //过滤frameset
        html = regex9.Replace(html, "");
        html = html.Replace(" ", "");
        html = html.Replace("</strong>", "");
        html = html.Replace("<strong>", "");
        html = cutBadStr(html);
        return html;
    }
前台绑定数据时这样的:JieQucontent(Server.HtmlDecode(cutBadStr(dt.Rows[0]["news_content"].ToString()))),JieQucontent()这是个截取长度的方法。
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,