Javascript 邮政编码验证

Javascript 邮政编码验证,javascript,html,Javascript,Html,我需要验证我的表格的一部分,这是基于马来西亚邮政编码的邮政编码,这是一个5位数的数字邮政编码。如何验证用户输入的值,该值正好有5个数字,不多也不少?提前谢谢 以下是我的代码部分: HTML: 邮政编码: Javascript: function chkPostcode () { var postcode = document.getElementById("postcode").value; var pattern = /^[0-9]+$/; //check

我需要验证我的表格的一部分,这是基于马来西亚邮政编码的邮政编码,这是一个5位数的数字邮政编码。如何验证用户输入的值,该值正好有5个数字,不多也不少?提前谢谢

以下是我的代码部分:

HTML:

邮政编码:
Javascript:

function chkPostcode () {
    var postcode = document.getElementById("postcode").value;
    var pattern = /^[0-9]+$/; //check only alpha characters or space
    var postcodeOK = true;
    
    if ((postcode.length < 5 && postcode.length > 5)){ //same as owner==""
        gErrorMsg = gErrorMsg + "Please enter postcode.\n"
        postcodeOK = false; //if condition or clause complex more readable if branches on separate lines
    }
    else{
        if (!pattern.test(postcode)){
        gErrorMsg = gErrorMsg + "Postcode must only contain numbers.\n"
        postcodeOK = false; //if condition or clause complex more readable if branches on separate lines
        }
    }
//if (!nameOk){
// document.getElementById("owner").style.borderColor = "red";
//
    return postcodeOK;
}
函数chkPostcode(){
var postcode=document.getElementById(“postcode”).value;
var pattern=//^[0-9]+$//;//仅检查字母字符或空格
var postcodeOK=true;
如果((postcode.length<5&&postcode.length>5)){//与所有者相同==“”
gErrorMsg=gErrorMsg+“请输入邮政编码。\n”
postcodeOK=false;//如果条件或子句复杂,则在单独的行上分支时可读性更高
}
否则{
如果(!pattern.test(邮政编码)){
gErrorMsg=gErrorMsg+“邮政编码只能包含数字。\n”
postcodeOK=false;//如果条件或子句复杂,则在单独的行上分支时可读性更高
}
}
//如果(!nameOk){
//document.getElementById(“所有者”).style.borderColor=“红色”;
//
返回邮政编码OK;
}

您的JavaScript不必要地复杂。这里有一个确定(而且更好)的方法(除了所有的ifs)来实现这一点(按钮和检查函数仅用于演示):

函数chkPostcode(){
var postcode=document.getElementById(“postcode”).value;
如果(postcode.length!==5)
{
返回false;
}
否则{
如果(!isNaN(parseInt(postcode.charAt(0))){
如果(!isNaN(parseInt(postcode.charAt(1))){
如果(!isNaN(parseInt(postcode.charAt(2))){
如果(!isNaN(parseInt(postcode.charAt(3))){
如果(!isNaN(parseInt(postcode.charAt(4))){
返回true;
}
}
}
}
}
}
返回false;
}
函数检查(){
如果(chkPostcode())警报(“有效!”);
else alert(“非邮政编码”);
}


检查
这是一个简短得多的代码,用于说明您要完成的任务

document.getElementById(“邮政编码”).addEventListener(“输入”,函数(e){
if(/^\d{5}$/.test(e.target.value)){
控制台日志(“有效”);
返回;
}
控制台日志(“无效”);
})

Postcode:
你忘了问问题!这个代码有什么问题吗?有什么问题吗?但是你只需要
/^\d{5}$/
postcode.length<5&&postcode.length>5
将永远不会是真的。它不能同时包含5个字符和5个字符。您需要
|
而不是
&
。正如@AZ|所述,您可以在regex本身中包含长度检查。@非常抱歉!我已经编辑了我的帖子,现在已经添加了我的问题啊我明白了,谢谢!问题已经解决了这将
“1abcd”
视为有效的邮政编码如果我需要验证器来验证只能包含数字的邮政编码?“^[0-9]+$'此模式可以正常工作吗?我刚刚在@adiga处修复了它。但是有更好的方法来实现它吗?@cpwI修复了一个评论员指出的错误。请使用新的。
function chkPostcode () {
    var postcode = document.getElementById("postcode").value;
    var pattern = /^[0-9]+$/; //check only alpha characters or space
    var postcodeOK = true;
    
    if ((postcode.length < 5 && postcode.length > 5)){ //same as owner==""
        gErrorMsg = gErrorMsg + "Please enter postcode.\n"
        postcodeOK = false; //if condition or clause complex more readable if branches on separate lines
    }
    else{
        if (!pattern.test(postcode)){
        gErrorMsg = gErrorMsg + "Postcode must only contain numbers.\n"
        postcodeOK = false; //if condition or clause complex more readable if branches on separate lines
        }
    }
//if (!nameOk){
// document.getElementById("owner").style.borderColor = "red";
//
    return postcodeOK;
}