Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript特殊字符删除不起作用_Javascript_Jsp - Fatal编程技术网

Javascript特殊字符删除不起作用

Javascript特殊字符删除不起作用,javascript,jsp,Javascript,Jsp,我已经编写了一个jsp代码,其中的值来自其他jsp,我需要删除字符串中的特殊字符。但是我无法删除特殊字符。请帮忙 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>JSP Page</title> <script>

我已经编写了一个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>

JSP页面
功能更改(chars){
var dchars=document.getElementById(“chars”).value;
dchars=dchars.replaceAll(“!@$%^&*()+=[]\\\\”,/{}\\\\”:?“,”;
document.getElementById(“chars”).innerHTML=dchars;
}
更改(res)
div元素没有“值”。您需要使用innerHtml替代:

document.getElementById('chars').innerHTML = dchars;
试试这个

 document.getElementById('chars').innerHTML = dchars; //div has no value..
假设通过特殊字符,您指的是任何非字母的内容,下面是一个解决方案:

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


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

function cleanCharsText(){

    var el = document.getElementById("chars");
    var txt = el.innerText || el.textContent;
    el.innerHTML = txt.replace( /[!@#$%^&*()+=\\[\]\';,/{}\|\":<>\?]/gi, '');
}
函数cleanCharsText(){ var el=document.getElementById(“chars”); var txt=el.innerText | | el.textContent; el.innerHTML=txt.replace(/[!@$%^&*()+=\\[\]\',/{}\\\\\\\\\”:\?]/gi,); }
但是,如果您的chars元素中包含以下
text
,则当您运行上述函数时,html span标记将被删除,因为我们仅提取文本。

但它仍然不会删除特殊字符。您的body onload语句中也有一个bug。重新移动不必要的“字符”属性!而且你也没有在你的函数中使用它,那么为什么要用它呢?它也必须有数字和字符,但没有特殊字符
function cleanCharsText(){

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