使用jquery/javascript检测数字或字母?

使用jquery/javascript检测数字或字母?,javascript,jquery,Javascript,Jquery,我只想在用户键入字母或数字时使用if语句来运行代码 我可以用 if(event.keyCode == 48 || event.keyCode == 49 || event.keyCode == 50..) { // run code } 有没有更简单的方法?可能某些键码在所有web浏览器中都不起作用?如果(event.keyCode>=48&&event.keyCode如果要检查可以使用大于或小于的字母范围: if(event.keyCode >= 48 &&a

我只想在用户键入字母或数字时使用if语句来运行代码

我可以用

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

有没有更简单的方法?可能某些键码在所有web浏览器中都不起作用?

如果(event.keyCode>=48&&event.keyCode如果要检查可以使用大于或小于的字母范围:

if(event.keyCode >= 48 && event.keyCode <= 90) {
    //the key pressed was alphanumeric
}
if (event.keyCode >= 48 && event.keyCode <= 57)
    alert("input was 0-9");
if (event.keyCode >= 65 && event.keyCode <= 90)
    alert("input was a-z");

有关
keyCode
属性,请参见,该属性解释了该属性与
哪个
属性以及它们应用于哪些事件之间的区别。

首先,如果要执行此操作,请确保它位于
keypress
事件中,这是您可以可靠地获取有关用户角色信息的唯一事件然后我会使用Andy E建议的方法:

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");
   }
};

如果要检查backspace,我将使用
keydown
事件,并检查
keyCode
的值是否为8,因为一些浏览器(包括Chrome)不会为backspace键触发
keypress
事件。

数字验证对我来说很好

$(document).ready(function () {

        $(".TxtPhone").keypress(function (e) {

            var key = e.charCode || e.keyCode || 0;

            // only numbers
            if (key < 48 || key > 58) {

                return false;
            }

        });

});
$(文档).ready(函数(){
$(“.TxtPhone”)。按键(功能(e){
var key=e.charCode | | e.keyCode | | 0;
//只有数字
如果(键<48 | |键>58){
返回false;
}
});
});

您也可以将charCodeonKeyPress事件一起使用:

if (event.charCode > 57 || event.charCode < 48) {
    itsNotANumber();
}
else {
    itsANumber();
}
if(event.charCode>57 | | event.charCode<48){
它的编号();
}
否则{
itsANumber();
}

使用
$.isNumeric(value);
返回类型为布尔值

通过使用正则表达式的动态过程使用javascript接受数字或字母

为特定控件添加onkeypress事件

onkeypress=“javascript:返回isNumber(事件)”

功能编号(evt){
evt=evt | | window.event;
var charCode=evt.which | | evt.keyCode;
var charStr=String.fromCharCode(charCode);
如果(/[0-9]/i.test(charStr)){
返回true;
}
其他的
返回false;
}
函数Alphanum(evt){
evt=evt | | window.event;
var charCode=evt.which | | evt.keyCode;
var charStr=String.fromCharCode(charCode);
如果(/[a-z0-9]/i.test(charStr)){
返回true;
}
其他的
返回false;
}
$('phone')。打开('keydown',函数(e){
设key=e.charCode | | e.keyCode | | 0;
//32=空格-可见和不可见字符的边框-允许我们退格和使用箭头等
//127-删除
如果(键>32&&(键<48 | |键>58)&&key!==127){
e、 预防默认值();
返回false;
}
})使用
event.key
和现代JS! 不再有数字代码。您可以直接检查钥匙

const key = event.key.toLowerCase();

if (key.length !== 1) {
    return;
}
const isLetter = (key >= "a" && key <= "z");
const isNumber = (key >= "0" && key <= "9");
if (isLetter || isNumber) {
    // Do something
}
或单独:

const isLetter = /^[a-z]$/i.test(event.key)
const isNumber = /^[0-9]$/i.test(event.key)
正如@Gibolt所说, 您应该使用event.key

因为charCode、keyCode和正在被弃用。

对于数值:

function ValidNumeric()
    {
        var charCode = (event.which) ? event.which:event.KeyCode;
        if (charCode>=48 && charCode<=57) 
        {
        return true;
        }
        else
        return false;
    }
函数ValidNumeric()
{
var charCode=(event.which)?event.which:event.KeyCode;

如果(charCode>=48&&charCode=65&&charCode=97&&charCode在使用
时检测字母和数字,则可以使用
输入
事件

值更改时触发此事件,因此无需担心Alt、Shift、箭头等键。更重要的是,如果使用鼠标剪切部分文本,事件也会触发

var-element=document.getElementById('search');
元素。addEventListener('input',函数(e){
console.log(element.value);
});

如何使用动态检查来检查“backspace”?请注意,这必须在
keypress
事件中完成,而不是在
keydown
事件中完成。请注意,奇怪的是,
String.fromCharCode
可以将不可键入的键转换为字符。例如,当我在mac上按左命令键时,我会得到“[”对于正确的答案,我得到了“]”。别忘了数字键盘:(event.keyCode>=96&&event.keyCode这个答案现在已经不推荐了。请看@Gibolt answer这是一个更好的答案,因为这可能是人们正在寻找的行为。“如果你想检查退格,我会使用If(charCode==8){…}”---我已经试过了,onkeypress不会为backspace@TKoL:有意思。它在Firefox中启动,但在Chrome中没有。这是自2010年以来发生的变化。@TKoL:或者有吗?我现在不确定,在谷歌搜索了一段时间后。我通常会在断言之前检查类似的内容。不过,在多个平台(包括jsf)上,我不会为keypress启动“delete”chrome和Windows Store html应用程序上的IDLE必须添加一条注释,注释中的
keycode
已被弃用,建议使用
KeyboardEvent.key
这是错误的!
(key>=“a”&&key有一个
length!==1
检查你错过了。修复了regexIs可以安全地假设
event.key.lenght===1
覆盖了每个字母、数字、空格和符号吗?我一直在测试key.length,发现控制键的长度>1。不过,我不确定这是否是一个好的解释,因为我不能保证这对任何事情都有效除了数字和字母,这是最初的问题。一些国际键盘可能有长度大于1的键。对于控制、转义等,直接检查“回车”等值,而不是长度
const isLetter = /^[a-z]$/i.test(event.key)
const isNumber = /^[0-9]$/i.test(event.key)
function ValidNumeric()
    {
        var charCode = (event.which) ? event.which:event.KeyCode;
        if (charCode>=48 && charCode<=57) 
        {
        return true;
        }
        else
        return false;
    }
function ValidAplpha()
{
    var charCode = (event.which) ? event.which:event.KeyCode;

    if(charCode >= 65 && charCode <= 90 || charCode>=97 && charCode<=122)
    {
    return true;
    }
    else
    return false;
}