我写了一个jsp代码,其中包含来自其他jsp的值,我需要删除string中的特殊字符。但是我无法删除特殊字符。请帮忙
<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>
答案 0 :(得分:0)
div元素没有“值”。你需要使用innerHtml insted:
document.getElementById('chars').innerHTML = dchars;
答案 1 :(得分:0)
试试这个......
document.getElementById('chars').innerHTML = dchars; //div has no value..
假设有特殊字符,你的意思是不是字母,这是一个解决方案:
alert(dchars.replace(/[^a-zA-Z ]/g, ""));
OR
alert(dchars.replace(/[^a-z0-9\s]/gi, '')); //will filter the string down to just alphanumeric values
答案 2 :(得分:0)
使用innerHTML的问题是某些字符会自动转换为HTML实体,例如&
转换为&
function cleanCharsText(){
var el = document.getElementById("chars");
var txt = el.innerText || el.textContent;
el.innerHTML = txt.replace( /[!@#$%^&*()+=\\[\]\';,/{}\|\":<>\?]/gi, '');
}
但是,如果你的chars元素中有以下<span> text </span>
,则在运行上述函数时将删除html span标记,因为我们只提取文本。