Javascript字符码

Javascript字符码,javascript,Javascript,我有一个javascript函数,只允许数字输入: function isANumber(evt) { var charCode = (evt.which) ? evt.which : event.keyCode; if (charCode > 31 && (charCode < 48 || charCode > 57)) return false; return true; } 函数编号(evt){ var charCode=(evt.which)?ev

我有一个javascript函数,只允许数字输入:

function isANumber(evt) {
var charCode = (evt.which) ? evt.which : event.keyCode;
if (charCode > 31 && (charCode < 48 || charCode > 57))

return false;

return true;
}
函数编号(evt){
var charCode=(evt.which)?evt.which:event.keyCode;
如果(字符码>31&(字符码<48 | |字符码>57))
返回false;
返回true;
}
我正在尝试修改我的邮政编码。用户可以按以下格式输入邮政编码12345-6789。我试图将字符码109和189添加到函数中,以便用户可以输入相应的键。这是我所拥有的,但它不起作用:

function isAZipCode(evt) {
var charCode = (evt.which) ? evt.which : event.keyCode;
if (charCode > 31 && (charCode == 109 || charCode == 189) && (charCode < 48 || 
charCode   > 57))

return false;

return true;
}
函数isAZipCode(evt){
var charCode=(evt.which)?evt.which:event.keyCode;
如果(charCode>31&(charCode==109 | | charCode==189)&(charCode<48 | |
字符编码>57)
返回false;
返回true;
}

您的原始版本是通过检查否定大小写来工作的,如果您修改它以检查它是否是有效的密钥代码之一,并且如果是以下情况,则返回true,这将更容易:

function isAZipCode(evt) {
    var charCode = (evt.which) ? evt.which : event.keyCode;
    if ((charCode >= 48 && charCode <= 57) || charCode == 109 || charCode == 189)
        return true;
    return false;
}
函数isAZipCode(evt){
var charCode=(evt.which)?evt.which:event.keyCode;

如果((charCode>=48&&charCode=48&&charCode)请更具体地说明您的实际问题,以及您尝试过的方法如果返回false怎么可能?如果char不是109或189,则&&(charCode==109 | | charCode==189是否为真?顶部函数isANumber工作正常。它只允许用户输入数字。我想要一个函数,允许用户输入数字、破折号(charCode 189)和减法(charCode 109)仅限。此函数称为isAZipCode,用于允许用户输入邮政编码。用户可以输入5位数的邮政编码,也可以输入邮政编码“加上四个编码”,即95448-5688。谢谢。这很有效。我必须将字符编码改为45,而不是109和189。
function isAZipCode(evt) {
    var charCode = (evt.which) ? evt.which : event.keyCode;
    if (charCode < 32 || (charCode >= 48 && charCode <= 57) || charCode == 109 || charCode == 189)
        return true;
    return false;
}