仅允许字母数字值

可能重复:
如何防止用户在输入字段中输入无效字符

我在页面上有3个文本框。 其中一个应该允许数字,其他字母和第三个数字或字母。

由于这是唯一的要求,我不想使用validation插件或任何其他第三方插件。 我怎么能通过使用纯jQuery创建自己的插件来做到这一点?

这就是我所做的,但我觉得代码会变得太长

$(this).keydown(function(e) { var key = e.charCode || e.keyCode || 0; return ( key == 8 || key == 9 || key == 46 || (key >= 37 && key = 48 && key = 96 && key <= 105)); }); 

http://jsfiddle.net/Cvus8/

有人能告诉我哪种方法可以解决这个问题吗?

更好的解决方案可能是使用基于正则表达式的检查。 以下示例将仅限制具有id 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-9范围内的数字,后跟零个或多个其他数字:

 ^[1-9]\d*$ 

确保字符串仅包含(ASCII)字母数字字符,下划线和空格

 ^[\w ]+$ 

只有Alphabets没有空格或_

 ^[a-zA-Z]+$ 

要匹配仅包含这些字符(或空字符串)的字符串,请尝试

 ^[a-zA-Z0-9_]*$ 

一些可能有帮助的模式..但我认为你必须根据你的需要修改它们。我希望它有所帮助..