Javascript特殊字符删除不起作用
我已经编写了一个jsp代码,其中的值来自其他jsp,我需要删除字符串中的特殊字符。但是我无法删除特殊字符。请帮忙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>
<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, '');
}