Javascript 如何计算同一函数中的两个正则表达式更新!

Javascript 如何计算同一函数中的两个正则表达式更新!,javascript,Javascript,例如,我想测试一个邮政编码是否有效,所以我在“if-else”场景中使用正则表达式测试邮政编码,并在提交表单时调用该函数 function validatePostal(postalCode) var re = new RegExp(/^([a-zA-Z]{2})([0-9]{1,2})[ ]([0-9]{2})([a-zA-Z]{1,2})$/); var re2 = new RegExp(/^([cC]{1})([aA]{1})(2|18|17)[ ]([0-9]{2})([a-zA-Z]

例如,我想测试一个邮政编码是否有效,所以我在“if-else”场景中使用正则表达式测试邮政编码,并在提交表单时调用该函数

function validatePostal(postalCode)
var re = new RegExp(/^([a-zA-Z]{2})([0-9]{1,2})[ ]([0-9]{2})([a-zA-Z]{1,2})$/); 
var re2 = new RegExp(/^([cC]{1})([aA]{1})(2|18|17)[ ]([0-9]{2})([a-zA-Z]{1,2})$/);
var str = shipPostalCode.value; 
if (re.test(str))
{
return true; 
}
else if (re2.test(str))
{
return true;
alert("Congratulations!!"); 
}
else
{
alert("That is not a valid postcode. Please verify your input. Format should be AA11 11AA"); 
return false;
}
}

onclick="return (validatePostal(postalCode)"
我将如何根据另一个正则表达式测试所述邮政编码,然后如果邮政编码有效,则只向特定区域的人显示消息。
e、 g.输入CA4的人会收到一条消息,而输入DA4的人不会收到消息?

好的,因此假设
re
re2
都是您想要接受的邮政编码的正则表达式,您可以使用如下结构:

if (re.test(str) || re2.test(str))
{
    return true; 
}
else
{
    alert("That is not a valid postcode. Please verify your input. Format should be AA11 11AA"); 
    return false;
}
现在,如果你想做另一个检查,就像你说的“DA4”和“CA4”,你会有另一个正则表达式(为了保持一致,我们称之为
re3
),然后你可以有一个内部
if
语句,如下所示:

if (re.test(str) || re2.test(str))
{
    if (re3.test(str)) {
        alert("You entered a CA4 postcode!");
    } else {
        alert("You did not enter a CA4 postcode :(.");
    }

    return true; 
}
else
{
    alert("That is not a valid postcode. Please verify your input. Format should be AA11 11AA"); 
    return false;
}

到目前为止你尝试了什么?一些代码会有帮助。这不仅仅是移动
if
语句并在其中插入另一个语句的情况吗?事实上,为什么re.test()和re2.test()条件会导致两个不同的块呢?对不起,我在这方面真的是新手,希望您能提供帮助。我想先检查邮政编码是否有效,然后一旦检查为真,它会检查邮政编码是否在指定区域?好的,我在下面发布了一个答案。请告诉我,如果这是你正在寻找的,或者你的意思是什么!谢谢你,我试着把它放到我的代码中,但是没有任何警报出现。你为什么不试着用Firefox的Firebug或者IE调试器或者Chrome来调试它呢。它会告诉你你遇到了什么情况,为什么不显示警报,或者Javascript是否有问题。因此,它进入第一个
if(re.test(str))
,将
isPostalCodeValid
设置为true,然后进入
if(isPostalCodeValid)
部分并进入该部分,在该部分中不会发生任何事情。阿披舍克所做的只是用稍微不同的格式重新编写代码,而不是(几乎)改变任何含义。你的意思是先检查
re
,然后如果是真的,检查
re2
?谢谢你的帮助!!!!我终于让它使用前面描述的| |方法显示消息了!我也会继续努力,让以上的方法发挥作用。感谢您抽出时间帮助一位新手!“//检查Postalcode和是否显示mssg”是为了@ez87添加代码。如果您希望我为您编写完整的逻辑@ez87,我很抱歉
    function validatePostal(postalCode)
var re = new RegExp(/^([a-zA-Z]{2})([0-9]{1,2})[ ]([0-9]{2})([a-zA-Z]{1,2})$/); 
var re2 = new RegExp(/^([cC]{1})([aA]{1})(2|18|17)[ ]([0-9]{2})([a-zA-Z]{1,2})$/);
var str = shipPostalCode.value; 
var isPostalCodeValid = false;
if (re.test(str))
{
isPostalCodeValid = true; 
}
else if (re2.test(str))
{
alert("Congratulations!!");
isPostalCodeValid = true;
}

if(isPostalCodeValid){
    //Check for Postalcode and show mssg or not
}else{
     alert("That is not a valid postcode. Please verify your input. Format should be AA11 11AA"); 
     return false;
}
}

onclick="return (validatePostal(postalCode)"