Javascript CharCode

时间:2014-01-02 17:29:36

标签: javascript

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

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

return false;

return true;
}

我正在尝试修改我的邮政编码。用户可以使用以下格式12345-6789输入zip。我试图将charCodes 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;
}

1 个答案:

答案 0 :(得分:0)

您的原始版本通过检查否定案例来工作,如果您修改它以检查它是否是有效的密钥代码之一,如果它是:

,则会更容易。
function isAZipCode(evt) {
    var charCode = (evt.which) ? evt.which : event.keyCode;
    if ((charCode >= 48 && charCode <= 57) || charCode == 109 || charCode == 189)
        return true;
    return false;
}

不确定原始版本是否故意为小于32的密钥代码返回true,如果您仍然需要这种行为,则可以轻松地将其添加回来:

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