代码之家  ›  专栏  ›  技术社区  ›  TMan

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

  •  0
  • TMan  · 技术社区  · 13 年前

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

    - (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 回复  |  直到 13 年前
        1
  •  1
  •   rmaddy    13 年前

    我在你们的应用程序中预装了州名和缩写的简单plist文件已经足够琐碎了。正则表达式将验证字符串是否表示有效的邮政编码。

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

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

    更新:快速查看 Wikipedia Zip Code page 揭示了一些邮政编码跨越多个州。