javascript - jQuery 邮政编码验证不起作用

标签 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" />

你能帮忙吗

最佳答案

有几个问题...

  • 正则表达式在 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/

相关文章:

javascript - 调用 h :commandButton submit 后关闭模态面板

javascript - React 上下文消费者如何访问消费组件的引用

javascript - 专注于位于 vuejs 中另一个组件内的输入?

javascript - 如何在js或jQuery中获取长度字符串json

javascript - jquery 进度条不显示

javascript - 如何检查某种类型的键盘按键是否与 CTRL 一起按下

javascript - 如果未选中 JavaScript 中的复选框,则表循环

javascript - 变量不区分大小写的正则表达式匹配javascript

jquery - 在 jquery 元素选择中使用正则表达式

regex - 使用正则表达式编写uCurl表数据发送到数据库的脚本