检查邮政编码是否在一个范围内

时间:2014-09-03 20:50:02

标签: ios regex postal-code

这可能是一个愚蠢的问题,但我是iOS编程的新手,我只是想不出什么。 对于我的应用程序,我需要检查某个邮政编码是否在一个范围内。德国或美国的代码很容易做到,这些代码是普通的数字,但现在我必须为加拿大代码做。

加拿大邮政编码示例如下:A0A,J3X,R7N,V1M。

有办法做到这一点吗?

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

你可以使用这样的正则表达式:

^(A0A|J3X|R7N|V1M)$

如果你想要范围,你可以这样做:

^(A0A|J3X|R7N|V1[M-Z])$
                 ^--- Will match V1M until V1Z

范围V1Z的另一个例子可能是:

^(A0A|J3X|R7N|V[5-9][M-Z])$
                 ^--- Will match VxM until VxZ and V5x until V9x

如果您只想要一个数字,可以使用\d(这是[0-9]的快捷方式)。 \w表示[A-Za-z0-9_]

您可以使用正则表达式类指定范围。像:

[0-4]
[7-9]
[A-M]
[O-X]

This answer on SO很好地描述了正则表达式字符类范围的工作原理。 要解释: 您不仅限于字母和数字([A-Z][0-9]),还应谨慎尝试更复杂的范围。

范围将允许according to the list of ASCII characters之间的任何字符匹配开始和结束字符。这意味着任何范围在技术上都是有效的(您可能只看到奇怪的结果)。例如,这两个类是相同的:

[0-Z]
[0-9:;<=>?@A-Z]