语言是c#,要实现的功能是,我有一个关键字数组,里面是违规输入字,在一个textarea中,输入一段字符窜,把其中的违规的关键字用红色表示出来,请问该怎么做呢?

解决方案 »

  1.   

    数组里面存的都是违规字符窜,比如说“我靠”等等,如果textarea输入的字符窜中含有“我靠”,就把“我靠”变成红色,希望大家多用代码来表示
      

  2.   

    我这个是textarea,能详细说说嘛?
      

  3.   

    <script> 
        function SetColor() {
            var divElement = document.createElement("div");
            var text=document.getElementById("TextArea1");
            divElement.innerHTML =text.innerText.replace(/混乱/g, "<a style=color:Blue >混乱</a>");
            text.innerText="";
            text.appendChild(divElement);        
        }
    </script>
        <form name="form1" method="post" action="Default.aspx" id="form1">
    <div>
    <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwULLTE2MTY2ODcyMjlkZOs/Rl6yWa9V6FOUH3J+/65KInQ1" />
    </div>
     
        <div>
            <textarea id="TextArea1" cols="20" rows="2">
            生活一片混乱,世界一片混乱
            </textarea>
            <input id="Button1" type="button" value="button" onclick="SetColor()" />    
            
        </div>    
        </form>
    </body>
      

  4.   

    var vStr = "tttdff|dff1|dff2|dff3";
    var str = vStr.split("|");
                for(var i = 0;i<str.length;i++)
                {
                    var divElement = document.createElement("div");
                    var text = document.getElementById("ctl00_ContentPlaceHolder1_txtContent1");
                    var regv = "/"+str[i]+"/g";//alert(str[i]),值都能显示出来
                    divElement.innerHTML = text.innerText.replace(regv, "<a style=color:Blue >"+str[i]+"</a>");
                    text.innerText = "";
                    text.appendChild(divElement);
                }
    加数组之后就不亮了,哪里出问题了?
      

  5.   

    你可以用一个div来模拟textarea,设置div的属性contentEditable="true" designMode="on"即可:
    <div contentEditable="true" designMode="on" style="width:200;height:300px;border:solid 1px black">
        <font color=red><a>hongse de </a></font>gasgasga
    </div>
    你可以看到已经有颜色了,那么你如果要检查是否有“屏蔽词”在里面,可以直接indexof。要变色直接按照css的规范来操作。
    考虑到变色后会有标签在文本里面,可以用两个div,一个用于显示真实的text,另一个和用于显示变色后的text。将真实的div隐藏,用js实现两div的有效内容同步