8
A
回答
7
你有两种方法来这样:
- 检查“按键”事件。如果用户按下特殊字符键,请将他停在那里
- 检查“onblur”事件:当输入元素失去焦点时,验证其内容。如果该值无效,则在该输入框旁边显示谨慎的警告。
我会建议第二种方法,因为它不那么刺激。请记住还要检查onpaste
。如果您只使用按键然后我们可以复制和粘贴特殊字符,所以使用onpaste
也限制粘贴特殊字符
此外,我还建议您重新考虑,如果你真的想防止用户输入特殊字符。因为很多人在他们的密码中都有$,#,@和*。
我认为这可能是为了防止SQL注入;如果是这样:更好地处理检查服务器端。或者更好的是,逃避价值并将它们存储在数据库中。
3
2
它会帮助您...假设您有一个带有“表格名称”窗体和带有“txt”名称的文本框的窗体。那么你可以使用下面的代码只允许aphanumeric值
var checkString = document.formname.txt.value;
if (checkString != "") {
if (/[^A-Za-z\d]/.test(checkString)) {
alert("Please enter only letter and numeric characters");
document.formname.txt.focus();
return (false);
}
}
11
试试这个,这个功能允许字母和空格:
function alpha(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));
}
在你的HTML:
<input type="text" name="name" onkeypress="return alpha(event)"/>
+0
为什么测试`document.all`来确定对`e.keyCode`的支持?为什么不测试`e.keyCode`呢? – rvighne 2014-01-25 04:06:36
6
对于特殊字符:
var iChars = "[email protected]#$%^&*()+=-[]\\\';,./{}|\":<>?";
for (var i = 0; i < document.formname.fieldname.value.length; i++) {
if (iChars.indexOf(document.formname.fieldname.value.charAt(i)) != -1) {
alert ("Your username has special characters. \nThese are not allowed.\n Please remove them and try again.");
return false;
}
}
2
我想检查keypress
事件是不完全足够,因为我相信用户可以复制/粘贴到输入框中,而不会触发按键。
因此onblur
可能会更可靠一些(但不太直接)。
要真正让你不想不记入输入框中确认字符(或文本域等),我想你会需要
- 检查
keypress
(如果你想给即时反馈)和 - 还检查
onblur
, - 以及验证服务器上的输入(这是确保没有任何不需要的数据进入您的数据的唯一真正方法)。
在其他答案的代码示例将正常工作做客户端检查(只是不上检查keypress
事件依赖仅),但作为公认的答案是指出,服务器边检是非常必要的。
相关问题
- 1. Javascript特殊字符验证
- 2. Onkeypress,javascript未验证特殊字符
- 3. 验证特殊字符
- 4. 验证特殊字符
- 5. 验证数字和特殊字符'_'
- 6. 有特殊字符Angular2密码验证
- 7. 特殊字符的必需验证
- 8. jQuery的验证特殊字符的
- 9. JSF:对特殊字符的验证
- 10. 如何防止使用Codeigniter表单验证的特殊字符?
- 11. Javascript特殊字符
- 12. 检查特殊字符(;)在验证一个表单的JavaScript
- 13. 在JavaScript中没有验证特殊字符“_”
- 14. Jquery使用特殊字符验证插件号码验证
- 15. 禁止特殊字符
- 16. 如何阻止HTML输入字段中的特殊字符?
- 17. Preg_match验证字符串中的特殊字符
- 18. 的javascript:有特殊字符
- 19. Javascript替换特殊字符
- 20. Javascript加入特殊字符?
- 21. JavaScript RegExp特殊字符
- 22. 特殊字符在JavaScript
- 23. 特殊字符在JavaScript
- 24. javascript替换特殊字符
- 25. 冲突Javascript阻止表单验证
- 26. 如何阻止androids editText中的特殊字符?没有ANDROID:DIGITS
- 27. 阻止使用特殊字符的形式与jQuery validationEngine
- 28. Selenium IDE - 如何验证名字字段中的特殊字符
- 29. 某些特定特殊字符的数据验证
- 30. 验证密码字段是否包含特殊字符
限制输入不一定是限制性的,它可能是输入电话号码,邮政编码,日期等。 但是,对建议的+1加倍服务器端的检查! – PhiLho 2009-05-25 12:08:48