我有一个只允许数字输入的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;
}
答案 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;
}