验证状态和邮政编码的有效方法

时间:2013-04-13 17:20:05

标签: ios objective-c cocoa-touch validation

我正在寻找一种简单的方法来验证州和邮政编码(仅限美国)。显然,有很多方法可以做到这一点。我有邮政编码:

- (BOOL)validateZipCode
{
    bool returnValue = false;
    NSString *zipcodeExpression = @"^[0-9]{5}(-/d{4})?$"; //U.S Zip ONLY!!!
    NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:zipcodeExpression options:0 error:NULL];

    NSTextCheckingResult *match = [regex firstMatchInString:ZipCodeTextField.text options:0 range:NSMakeRange(0, [ZipCodeTextField.text length])];
    if (match)
    {
       returnValue = true;
    }
   return returnValue;
 }

只是拥有所有状态和缩写的列表并且只是比较用户输入以检查匹配是否常见?这似乎很多。

我想我正在寻找其他选择。我还听说过一些框架,当用户输入邮政编码时,城市和州将自动生成。有谁知道这样的替代品吗?

1 个答案:

答案 0 :(得分:1)

我的应用程序中的简单plist文件预装了状态名称和缩写很简单。您的正则表达式将验证字符串是否代表有效的邮政编码。

如果您需要实际验证邮政编码和状态是否匹配,则需要更多数据。

快速谷歌搜索应该显示一些您可以用来从邮政编码获取状态的网络服务。邮政编码有时会改变(至少添加新邮政编码)。您可以在应用中提供州/邮政编码数据库文件。但是,您需要一种方法来暂时更新数据库,而无需提交应用程序的更新。

更新:快速查看Wikipedia Zip Code page会发现某些邮政编码跨越多个州。