惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

雷峰网
雷峰网
博客园 - 聂微东
酷 壳 – CoolShell
酷 壳 – CoolShell
宝玉的分享
宝玉的分享
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
罗磊的独立博客
Hugging Face - Blog
Hugging Face - Blog
T
Tailwind CSS Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
IT之家
IT之家
博客园_首页
博客园 - 三生石上(FineUI控件)
博客园 - 叶小钗
Apple Machine Learning Research
Apple Machine Learning Research
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
量子位
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
人人都是产品经理
人人都是产品经理
美团技术团队
小众软件
小众软件
Jina AI
Jina AI
S
SegmentFault 最新的问题
博客园 - Franky
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com

博客园 - 老枪

sql 修改时间 接近完美的CSS标题、列表溢出隐藏 - 老枪 - 博客园 通过js读取或设置FCKeditor中的值 - 老枪 - 博客园 access查找表是否存在 css 如何设置 某div 里面的所有图片的最大宽度。当加入文章里图片时,图片自动按比例减小。 高素质图片压缩 Asp.net把UTF-8编码转换为GB2312编码 检索COM类工厂中CLSID...”的两个错误的解决方法 检索COM类工厂中CLSID...”的两个错误的解决方法 111111 Lucene基于Java的全文检索引擎简介 sql2005 中文分词 - 老枪 - 博客园 gridview使用大全 ASP.NET程序中常用的三十三种代码 - 老枪 - 博客园 使用System.Web.Mail通过需验证的邮件服务器发送邮件 - 老枪 - 博客园 40种网页常用小技巧(javascript) - 老枪 - 博客园 SQL SERVER 2005 同步复制技术 网页制作之在线视频播放代码 - 老枪 - 博客园 常用javascript数据验 - 老枪 - 博客园 asp.net2.0中,使用gridview显示新闻标题
ASP.NET替换HTML代码<>中的任意代码 - 老枪 - 博客园
老枪 · 2008-07-22 · via 博客园 - 老枪

ASP.NET替换HTML代码<>中的任意代码

替换<>中的任意代码.
方法如下:
protected string DealTo(string ProcStr)
{
    string[] strarr ={ "onclick", "onmouseover", "onmouseout", "ondblclick", "ondisposed", "oninit", "onkeydown", "onkeyup", "onkeypress", "onload", "onmousedown", "onmousemove", "onmouseup", "onperender", "onunload" };
    //需要替换的代码数组,可以自定义
    string replaceto = "rpt";
    string reStr = "";
    reStr = ProcStr;
    for (int i = 0; i < strarr.Length; i++)
    {
        reStr = CheckAndDeal(reStr, strarr[i], replaceto);
    }
    return reStr;
}

protected string CheckAndDeal(string checkStr,string repStr,string replaceTo)
{
    int strIndex;
    int strLen = 0;
   
    strLen = checkStr.Length;
    string returnStr="";
    string tempReplaceTo = "ASDFGHJKL";
    //临时替换字符串,可以使用任何字符串代替,但是需要保证字符串不在要处理的字符串中出现
   
    if (strLen <= 0)
    {
        return "";
    }
    strIndex = checkStr.IndexOf(repStr);
    if (strIndex != -1)//等于或者小于0的情况不用判断.可以直接返回原来的字符串.
    {
        while (checkStr.IndexOf(repStr) != -1)//循环判断是否能够匹配替换字符串.
        {
            int indexOfGreat = -1;
            int indexOfLess = -1;
            strIndex = checkStr.IndexOf(repStr);
            char[] chArr = checkStr.ToCharArray();
            //查找字符<和>
            char coms = ' ';
            for (int i = strIndex - 1; i >= 0; i--)
            {
                //string s = checkStr.Substring(i , 1);
                coms = chArr[i];
                if (coms == '>')
                {
                    break;
                }
                else if (coms == '<')
                {
                    indexOfLess = i;
                    break;
                }
            }
            for (int i = strIndex; i < strLen; i++)
            {
                //string s = checkStr.Substring(i, 1);
                coms = chArr[i];
                if (coms == '<')
                {
                    break;
                }
                else if (coms == '>')
                {
                    indexOfGreat = i;
                    break;
                }
            }
            string subleft = "";
            string subright = "";
            subleft = checkStr.Substring(0, checkStr.IndexOf(repStr));
            subright = checkStr.Substring((checkStr.IndexOf(repStr) + repStr.Length));

            if (indexOfGreat > -1 && indexOfLess > -1 && indexOfGreat > indexOfLess && indexOfGreat < strLen)
            //如果符合在<>中,则替换,否则先将查找到的字符串替换成临时字符串.
            {
                checkStr = subleft + replaceTo + subright;
            }
            else
            {
                checkStr = subleft + tempReplaceTo + subright;
            }
        }
        checkStr = checkStr.Replace(tempReplaceTo, repStr);//将临时字符串替换回原来的字符串.
        returnStr = checkStr;
    }
    else
    {
        returnStr = checkStr;
    }
    return returnStr;
}