我正在尝试使用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" />
你能帮忙吗
最佳答案
有几个问题...
除非您需要通过其构造函数创建RegExp
对象,否则JavaScript中不会引用
match()
并进行隐式转换,但建议不要将其传递给RegExp
文字。 /
作为正则表达式文字中的分隔符。使用RegExp
时,您不会传递任何定界符。因此,~
永远都不正确。也许您在考虑PHP。 {1}
量词是隐式的,并且[0-9]
字符类可以替换为\d
。 else
,只需使用bang运算符(!
)否定条件。 这是我可能会使用的方式...
if ( ! postcod.val().match(/^([1-9]\d{3}\s[A-Z]{2})$/)){
...
}