jQuery邮政编码验证不起作用

时间:2011-05-17 07:45:14

标签: javascript jquery regex

我正在尝试使用jQuery验证邮政编码字段,但它不起作用。

这是我的代码:

if (postcod.val().match ('~^([1-9]{1}[0-9]{3}\s[A-Z]{2})$~')){
         }else{
            postcod.addClass("needsfilled");
            postcod.val(postcoderror);
        }

这是html:

PostCode<br /><input id="postcod" type="text" value="" name="postcod" />

你可以帮助PLZ

1 个答案:

答案 0 :(得分:7)

有一些问题......

  • 除非您需要通过构造函数创建RegExp对象,否则JavaScript中的正则表达不会引用。在这种情况下,你没有。如果我需要连接外部字符串,我只使用它们。虽然您可以将字符串传递给match()并且它将被隐式转换,但不建议传递RegExp字面值。
  • 您需要使用/作为正则表达式文字中的分隔符。使用RegExp时,您不会传递任何分隔符。所以~永远不正确。也许你在想PHP。
  • 虽然没有必要,但你的一些正则表达式可以改进。 {1}量词是隐式的,[0-9]字符类可以用\d代替。
  • 不是使用空块和else,而是使用bang运算符(!)来否定条件。

以下是我如何使用它......

if ( ! postcod.val().match(/^([1-9]\d{3}\s[A-Z]{2})$/)){
   ...
}