检查邮政编码是不是在范围内

Posted

技术标签:

【中文标题】检查邮政编码是不是在范围内【英文标题】:Check if postal code is in a range检查邮政编码是否在范围内 【发布时间】:2014-09-03 20:50:02 【问题描述】:

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

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

有没有办法做到这一点?

感谢您的帮助!

【问题讨论】:

你想要这样的东西吗:^(A0A|J3X|R7N|V1M)$ @Fede 哦天哪,我现在真的很愚蠢,因为我还没有想到这个哈哈!有范围有类似的东西吗?例如 V1M - V1Z? 我会用它发布答案 【参考方案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]

【讨论】:

当你开始对正则表达式中的字符类范围产生兴趣时要小心。它从头到尾通过list of ASCII characters,所以[0-Z] would be the same as [0-9:;&lt;=&gt;?@A-Z] @Sam 是的,你完全正确。如果你愿意,我可以用你的评论更新我的答案 @user3347446 很高兴为您提供帮助。

以上是关于检查邮政编码是不是在范围内的主要内容,如果未能解决你的问题,请参考以下文章

检查变量是不是设置在全局范围内?

检查用户是不是在半径范围内

MySQL 检查日期范围是不是在日期范围内

检查经纬度列表是不是在范围内

如何检查地理位置是不是在半径范围内?

C如何检查内存地址是不是仍在范围内[关闭]