用于验证邮政编码和电话号码的正则表达式

时间:2011-06-12 02:46:48

标签: javascript regex

我正在创建一个带有警告元素的表单。一切都很好,但需要更好地定义我的模式。

                $("#postcode").inputNotes( 
              {
                warning: {
                  pattern: /^[0-9]+$/,
                  type: 'note',
                  text: 'Only numbers, please ...',
                  inversedBehavior: true
                }
              }
            );
            $("#phone").inputNotes( 
              {
                warning: {
                  pattern: /^[0-9]+$/,
                  type: 'note',
                  text: 'Only numbers, no spaces please ...',
                  inversedBehavior: true
                }
              }
            );

对于邮政编码警告,我希望模式可以预期4个数字

对于电话警告,我希望该模式可以使用10个数字。

任何帮助表示感谢。

7 个答案:

答案 0 :(得分:8)

以下是澳大利亚邮政编码的规则:

ACT:0200-0299和2600-2639。

NSW:1000-1999,2000-2599和2640-2914。

NT:0900-0999和0800-0899。

QLD:9000-9999和4000-4999。

SA:5000-5999。

TAS:7800-7999和7000-7499。

VIC:8000-8999和3000-3999。

WA:6800-6999和6000-6799

正则表达式:^(0 [289] [0-9] {2})|([1345689] [0-9] {3})|(2 [0-8] [0-9 ] {2})|(290 [0-9])|(291 [0-4])|(7 [0-4] [0-9] {2})|(7 [8-9] [0 -9] {2})$

通行证:0200 ||| 7312 ||| 2415

失败:0300 ||| 7612 ||| 2915

答案 1 :(得分:5)

<强>更新

对于6位或10位数字:  pattern: /^[0-9]{10}|[0-9]{6}$/,

四位数邮政编码:pattern: /^[0-9]{4}$/,

对于10位数的电话号码: (如果电话号码不能以0开头)  pattern: /^[1-9][0-9]{9}$/,

(如果电话号码可以从0开始)  pattern: /^[0-9]{10}$/,

答案 2 :(得分:3)

对于4位数的邮政编码,您可以使用/^\d{4}$/

对于10位数的邮政编码,您可以使用/^\d{10}$/

请记住,有些人会在电话号码中输入空格,括号等。在使用/[^\d]+/g进行验证之前,您应先删除所有非数字。

答案 3 :(得分:2)

不要使用+修饰符,请尝试使用{num},其中num是您想要的前一个原子的实例数。

答案 4 :(得分:0)

澳大利亚邮政在2019年大大简化了规则。 现在,您只需要考虑以下范围:
0200 – 0299、0800-0999和1000 – 9999

因此验证澳大利亚邮政编码的正则表达式为:

^(0[289][0-9]{2})|([1-9][0-9]{3})$

答案 5 :(得分:0)

所有这些答案均假设您将文本字段限制为4个字符,例如。 (12345)有效,为限制长度,请使用以下

^(0[289][0-9]{2})$|^([1-9][0-9]{3})$

答案 6 :(得分:0)

为了节省人们的时间,这里是一个如何在 jquery 中使用的例子

 $("#address-postal-code").once().on('blur', function (e) {
    var myRegEx = new RegExp('^(0[289][0-9]{2})|([1-9][0-9]{3})$');
    var ele = $(this);
    if (!myRegEx.test(ele.val())) {
        console.log('no good');
    }
    else {
        console.log('good');
    }
})