简体   繁体   English

模式匹配检查范围之间的邮政编码

[英]Pattern Matching checking zipcode between range

The data entered should be processed to check if the zip code is included in service area (This includes zip codes from 63121 to 69999). 输入的数据应进行处理,以检查邮政编码是否包含在服务区域中(包括从63121到69999的邮政编码)。

This is what I have done I know I'm doing pattern matching wrong. 这是我所做的,我知道我在进行模式匹配错误。 Any help will be appreciated! 任何帮助将不胜感激!

function validate() {
    var zipCode = document.getElementById("zip");
    var ok = zipCode.value.search(/^(6|9)\d{3,9}\d{1,9}\d{2,9}\d{1,9}$/);
    if (ok != 0) {
        alert("Sorry no service");
        zipCode.focus();
        zipCode.select();
        return false;
    } else
        return true;
}

HTML Part HTML部分

<form name = "myForm" action = ""  >

        <table align = "center" bgcolor = "FF6600" cellspacing = "3" cellpadding = "4" border = "1" style="font-family:Comic Sans;vertical-align:center;">
        <caption style="background-color:#FFD700; text-align:left"> <font size="5" color="black">Check Coverage: </font></caption>
            <tr>
                <td class="info">First Name</td>
                <td><input type = "text" name = "first" class="textright">*</td>
            </tr>
            <tr>
                <td class="info">Phone Number</td>
                <td><input type  = "text"  name  = "phone" size="10" maxlength = "12" class="textright" >* (ddd-ddd-dddd)</td>
            </tr>
            <tr>
                <td class="info">Zip Code</td>
                <td><input type  = "text" id="zip" name = "zip1" size ="5" maxlength = "5" class="textright">* </td>
            </tr>
            <tr>
                <td class="size">* - Required Field</td>
                <td><input type = "button" class="but2" value ="Reset"><input type = "submit" class= "but2" onclick="validate()" value ="Check Availability" ></td>
            </tr>
        </table>
</form>

There is no need to use regex. 无需使用正则表达式。 Since all of the zipcodes you are looking at are all 5 digits long (with no leading zeroes), cast them as an integer and just check the zipcode is in the required range. 由于您正在查看的所有邮政编码均为5位数字(无前导零),因此将其转换为整数,然后检查邮政编码是否在所需范围内。

function validate() {
    var zipCodeField = document.getElementById("zip");
    var zipCode = parseInt(zipCodeField.value);
    if (!(63121 <= zipCode && zipCode <= 69999)) {
        alert("Sorry no service");
        zipCodeField.focus();
        zipCodeField.select();
        return false;
    } else {
        return true;
    }
}

With the update about it not working, I threw together this fiddle . 由于更新不起作用,我把这个小提琴放在一起了。 The only thing you need to do is return the value of the validate() function, onsubmit of the form rather than onclick of the button. 您唯一需要做的就是return validate()函数的值,即表单的onsubmit而不是按钮的onclick

I saw that your requirement is linear.. 我看到您的要求是线性的。

var x=parseInt(zipcode)
if(zipcode<63121 and zipcode>69999){
alert("Sorry no service");
        zipCode.focus();
        zipCode.select();
        return false;
} 
else 
{
return true;
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM