我有以下代码禁止将特殊字符插入以HTML格式提交的文本中。
可以看出,我需要禁用的特殊字符在引号之间,而我需要禁用引号"
本身,但我不能这样做,因为如果在中间添加另一个引号,则它的意思是第一个引号的结尾。
如何禁用引号以及要输入的特殊字符?
function disableSpecialChars()
{
var spclChars = ",!@#$%^&*()/"; // specify special characters
var content = document.getElementById("permanentaddress").value;
for (var i = 0; i < content.length; i++)
{
if (spclChars.indexOf(content.charAt(i)) != -1)
{
alert ("Special characters(,!@#$%^&*()) are not allowed.");
document.getElementById("permanentaddress").value = "";
return false;
}
}
}
您需要在引号(“)之前使用一个反斜杠:
function disableSpecialChars()
{
var spclChars = ",!@#$%^&*()/\""; // specify special characters
var content = document.getElementById("permanentaddress").value;
for (var i = 0; i < content.length; i++)
{
if (spclChars.indexOf(content.charAt(i)) != -1)
{
alert ("Special characters(,!@#$%^&*()) are not allowed.");
document.getElementById("permanentaddress").value = "";
return false;
}
}
}
或者您可以对所有特殊字符使用ASCII代码:
function disableSpecialChars(e) {
var k;
document.all ? k = e.keyCode : k = e.which;
return ((k > 64 && k < 91) || (k > 96 && k < 123) || k == 8 || k == 32 || (k >= 48 && k <= 57));
}