在javascript中验证具有不同范围的数字

时间:2016-10-19 04:28:46

标签: javascript validation

在电子商务系统中,我们有邮政编码列表,我们需要为邮政编码排除2个数字范围。

例如: 从1xxxxx&开始排除的邮政编码3xxxxx,但是从6xxxxx接受。

我在javascript中有验证码,需要添加2个条件,如果号码以1和3开头,则用户有警告消息,此邮政编码不在覆盖范围内。

希望有人能提供帮助。

我目前的代码如下:

 return !Validation.get('IsEmpty').test(v) &&  /^60/.test(v);

感谢。

2 个答案:

答案 0 :(得分:1)

我想分享我在Jodery中验证美国邮政编码的经验,我在Oodles Technologies的一个项目中使用过。

我通过使用jQuery验证插件解决了这个问题

$("#myform").validate({
rules: {
field: {
required: true,
phoneUS: true
}
}
});

所需的文件
<script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
<script src="http://jqueryvalidation.org/files/dist/jquery.validate.min.js"></script

它有时不起作用。

为了使它工作,我们必须包括Jquery addtional-methods.min.js 如果它仍然不起作用,那么你必须在包含正则表达式验证的validate方法之前使用以下脚本。

jQuery.validator.addMethod("phoneUS", function (phone_number, element) {
            phone_number = phone_number.replace(/\s+/g, "");
            return this.optional(element) || phone_number.length > 9 &&
                  phone_number.match(/\(?[\d\s]{3}\)[\d\s]{3}-[\d\s]{4}$/);
        }, "Invalid phone number");

它终于解决了问题。如果您需要其他格式,请根据需要修改上述正则表达式。

答案 1 :(得分:0)

这将检查v是否为任何数字([0-9]),除了1或3作为第一个数字

return !Validation.get('IsEmpty').test(v) && /^[0-9]/.test(v) && !(/^[13]/.test(v))

这将检查v是否与第一个(6,7,8,9)

一样是部分数字
return !Validation.get('IsEmpty').test(v) && /^[6789]/.test(v)

顺便说一下,您可能还想检查6位数({5})的邮政编码的长度和格式。在这种情况下,您可以将短语更改为

return !Validation.get('IsEmpty').test(v) && /^[6789][0-9]{5}$/.test(v)