我正在尝试使用 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" />
你能帮忙吗
最佳答案
有几个问题...
- 正则表达式在 JavaScript 中不被引用,除非您需要通过其构造函数创建一个
RegExp
对象。在这种情况下,你不会。我只在需要连接外部字符串时才使用它们。虽然您可以将字符串传递给match()
并且它会被隐式转换,但不建议传递RegExp
文字。 - 您需要使用
/
作为正则表达式文字中的分隔符。使用RegExp
时,您无需传递任何分隔符。所以~
永远不会正确。也许您正在考虑 PHP。 - 虽然没有必要,但您的某些正则表达式可以改进。
{1}
量词是隐式的,[0-9]
字符类可以用\d
代替。 - 不用空 block 和
else
,只需使用 bang 运算符 (!
) 否定条件即可。
下面是我可能如何使用它...
if ( ! postcod.val().match(/^([1-9]\d{3}\s[A-Z]{2})$/)){
...
}
关于javascript - jQuery 邮政编码验证不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6027773/