Angular的ng-pattern正则表达式代码适用于美国邮政编码和加拿大邮政编码。

4

我能否得到帮助?

我正在寻找一些用于验证美国邮政编码和加拿大邮政编码的正则表达式,用于 AngularJS。

1个回答

9
这应该适用于您:
^(\d{5}(-\d{4})?|[A-Z]\d[A-Z] *\d[A-Z]\d)$

如果您不想匹配字符串的开头和结尾,请移除^$锚点。
在JavaScript中使用时,请记得使用/分隔符:
http://regex101.com/r/nO4zF5

if (/^(\d{5}(-\d{4})?|[A-Z]\d[A-Z] *\d[A-Z]\d)$/.test(str)) {
    // it's a match!
}

作为 Angular 中的 ng-pattern,可以直接使用:

ng-pattern="/^(\d{5}(-\d{4})?|[A-Z]\d[A-Z] *\d[A-Z]\d)$/"

1
我没有意识到表达式开头和结尾需要加上斜杠,现在没问题了,谢谢Remus /^(\d{5}(-\d{4})?|[A-Z]\d[A-Z] *\d[A-Z]\d)$/ - Sonia Brami
1
是的,这就是在 .js 中表示正则表达式的方法 ;) - brandonscript
谢谢。如果示例在AngularJS上下文中会更好。我不得不阅读评论才能弄清楚。这对像我这样的新手很有帮助。 - Gene Parcellano
那个基因的问题在于另一半人会认为那是表达式的一部分。 - brandonscript

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接