0

我编写了一个 jsp 代码,其值来自其他 jsp,我需要删除字符串中的特殊字符。但我无法删除特殊字符。请帮忙

    <html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
       <script>
            function change(chars){
                var dchars=document.getElementById("chars").value;
                dchars = dchars.replaceAll("!@#$%^&*()+=[]\\\';,/{}|\":<>?", '');
            document.getElementById("chars").innerHTML=dchars;
            }
        </script>
    </head>
   <%
String res=request.getParameter("tes");
       %>
       <body onload="change(chars)" ><script>
        change(res)
</script>
     <div id="chars"> <%=res%></div>
    </body>
</html>
4

3 回答 3

0

尝试这个....

 document.getElementById('chars').innerHTML = dchars; //div has no value..

假设通过特殊字符,您的意思是任何不是字母的东西,这是一个解决方案:

alert(dchars.replace(/[^a-zA-Z ]/g, ""));

或者

alert(dchars.replace(/[^a-z0-9\s]/gi, '')); //will filter the string down to just alphanumeric values
于 2012-12-12T11:29:15.517 回答
0

div 元素没有“价值”。您需要使用innerHtml insted:

document.getElementById('chars').innerHTML = dchars;
于 2012-12-12T11:21:45.047 回答
0

使用 innerHTML 的问题是某些字符会自动转换为 HTML 实体,例如&转换为&amp;

function cleanCharsText(){

    var el = document.getElementById("chars");
    var txt = el.innerText || el.textContent;
    el.innerHTML = txt.replace( /[!@#$%^&*()+=\\[\]\';,/{}\|\":<>\?]/gi, '');
}

但是,如果您<span> text </span>的 chars 元素中有以下内容,则当您运行上述函数时,html span 标签将被删除,因为我们只提取文本。

于 2012-12-12T12:16:12.510 回答