检测数字或字母与jQuery的/ JavaScript?

我想使用if语句来运行代码只有当用户input一个字母或数字。

我可以使用

if(event.keyCode == 48 || event.keyCode == 49 || event.keyCode == 50..) { // run code } 

但有没有更简单的方法来做到这一点? 也许一些键码不工作在所有的网页浏览器?

如果你想检查一系列的字母,你可以使用大于和小于:

 if (event.keyCode >= 48 && event.keyCode <= 57) alert("input was 0-9"); if (event.keyCode >= 65 && event.keyCode <= 90) alert("input was az"); 

要进行更dynamic的检查,请使用正则expression式:

 var inp = String.fromCharCode(event.keyCode); if (/[a-zA-Z0-9-_ ]/.test(inp)) alert("input was a letter, number, hyphen, underscore or space"); 

请参阅keyCode属性的MDC文档 ,它解释了它与which属性以及它们应用于哪些事件之间的区别。

首先,如果你这样做,确保它在keypress事件,这是唯一的事件,你可以可靠地获得关于用户input的字符的信息。 那么我会用Andy E的方法build议:

 document.onkeypress = function(evt) { evt = evt || window.event; var charCode = evt.which || evt.keyCode; var charStr = String.fromCharCode(charCode); if (/[a-z0-9]/i.test(charStr)) { alert("Letter or number typed"); } }; 

如果你想检查退格,我会使用keydown事件,并检查keyCode为8,因为多个浏览器(包括Chrome)不会触发退格键的keypress事件。

 if(event.keyCode >= 48 && event.keyCode <= 90) { //the key pressed was alphanumeric } 

数字validation,对我来说工作正常

 $(document).ready(function () { $(".TxtPhone").keypress(function (e) { var key = e.charCode || e.keyCode || 0; // only numbers if (key < 48 || key > 58) { return false; } }); }); 

你也可以在onKeyPress事件中使用charCode

 if (event.charCode > 57 || event.charCode < 48) { itsNotANumber(); } else { itsANumber(); } 

使用$.isNumeric(value); 返回types是布尔值

使用正则expression式通过Dynamic Process接受数字或字母。

为特定控制添加onkeypress事件

onkeypress =“javascript:return isNumber(event)”

  function numOnly(evt) { evt = evt || window.event; var charCode = evt.which || evt.keyCode; var charStr = String.fromCharCode(charCode); if (/[0-9]/i.test(charStr)) { return true; } else return false; } function Alphanum(evt) { evt = evt || window.event; var charCode = evt.which || evt.keyCode; var charStr = String.fromCharCode(charCode); if (/[a-z0-9]/i.test(charStr)) { return true; } else return false; } 
 $('#phone').on('keydown', function(e) { let key = e.charCode || e.keyCode || 0; //32 = space - border of visible and non visible characters - allows us to backspace and use arrows etc //127 - delete if (key > 32 && (key < 48 || key > 58) && key !== 127) { e.preventDefault(); return false; } });