邮政编码验证会在 keyup 上删除多余的数字



ik 有一个输入,其中必须检查邮政编码。这是我目前所拥有的。

$("input[id='postal']").keyup(function count() {
    var zipcodeValue = this.value;
    zipcodeCheck = zipcodeValue.split(" ").join("");
    var regex = new RegExp(/^[0-9]{4}[a-z]{2}$/i);
    if (regex.test(zipcodeCheck) == true) {   
        // something
    } else {
        // something else
    }
});

这是有效的,但我想禁止用户键入四个以上的数字。邮政编码必须像 1234AB 或 1234 AB 而不是 12345B。

在 keyup 上键入第五/第六个数字时,我可以删除第五个/第六个数字吗?

谢谢

这个呢 - http://jsfiddle.net/bS9Q8/

$("#postal").keydown(function(e) {
    var zipcodeValue = this.value + String.fromCharCode(e.keyCode);;
    if (zipcodeValue.length<5) { return true;}
    var regex = new RegExp(/^[0-9]{4}[a-z]{2}$/i);
    if (zipcodeValue.length==5) {
        regex = new RegExp(/^[0-9]{4}[a-z]{1}$/i);
    }
    if (regex.test(zipcodeValue) != true) {   
        return false;        
    }
});

尝试键控事件

$("input[id='postal']").keydown(function (event) {
 var zipcodeValue = this.value;
 zipcodeCheck = zipcodeValue.split(" ").join("");
 var regex = new RegExp(/^[0-9]{4}[a-z]{2}$/i);
 if (regex.test(zipcodeCheck) == true) {   
     // something
 } else {
     // something else
     return false;
 }
});

最新更新