可能重复:
How to prevent users from entering invalid characters inside an input field
我在页面上有3个文本框。其中一个应该允许数字,其他字母和第三个数字或字母。
由于这是唯一的要求,我不想使用验证插件或任何其他第三方插件。如何通过使用纯jQuery创建自己的插件来实现这一目标?
这就是我所做的,但我觉得代码会变得太长
$(this).keydown(function(e)
{
var key = e.charCode || e.keyCode || 0;
return (
key == 8 ||
key == 9 ||
key == 46 ||
(key >= 37 && key <= 40) ||
(key >= 48 && key <= 57) ||
(key >= 96 && key <= 105));
});
有谁能告诉我哪种方法可以解决这个问题?
答案 0 :(得分:53)
更好的解决方案可能是使用基于正则表达式的检查。以下示例将仅限制标识为text
的字段中的字母数字字符:
$('#text').keypress(function (e) {
var regex = new RegExp("^[a-zA-Z0-9]+$");
var str = String.fromCharCode(!e.charCode ? e.which : e.charCode);
if (regex.test(str)) {
return true;
}
e.preventDefault();
return false;
});
答案 1 :(得分:11)
1-9范围内的数字,后跟零个或多个其他数字:
^[1-9]\d*$
确保字符串仅包含(ASCII)字母数字字符,下划线和空格
^[\w ]+$
只有Alphabets没有空格或_
^[a-zA-Z]+$
要匹配仅包含这些字符(或空字符串)的字符串,请尝试
^[a-zA-Z0-9_]*$
一些可能有帮助的模式..但我认为你必须根据需要修改它们。我希望它有所帮助..