检测数字或字母与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; } });