如何在同一个函数中计算两个正则表达式?——更新

How do you evaluate two regular expressions within the same function? - updated!

本文关键字:两个 更新 正则表达式 同一个 函数 计算      更新时间:2023-09-26

例如,我想测试邮政编码是否有效,所以我在'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)"

我将如何去测试说邮政编码对另一个正则表达式,然后如果邮政编码是有效的,只显示一个消息给那些在一个特定的区域。例如,输入CA4的人会收到消息,而输入DA4的人则不会收到消息?

好的,假设rere2都是您想要接受的邮政编码的正则表达式,您可以有这样的结构:

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;
}
    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)"