Zipcode验证会删除密钥上的额外数字

时间:2013-11-13 09:22:29

标签: jquery

我有一个输入,必须检查邮政编码。这就是我现在所拥有的。

$("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相同。

我可以在关键字输入时删除第五个/第六个数字吗?

谢谢

2 个答案:

答案 0 :(得分:1)

这个怎么样 - 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;        
    }
});

答案 1 :(得分:0)

尝试keydown事件

$("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;
 }

});