0

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

- (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;
 }

仅列出所有州和缩写词并仅比较用户输入以检查匹配是否很常见?这似乎很多。

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

4

1 回答 1

1

我在您的应用程序中预先加载了州名和缩写的简单 plist 文件就足够简单了。您的正则表达式将验证字符串是否代表有效的邮政编码。

如果您需要实际验证邮政编码和州属是否匹配,那将需要更多数据。

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

更新:快速浏览一下Wikipedia 邮政编码页面会发现,一些邮政编码跨越多个州。

于 2013-04-13T17:27:00.290 回答