我正在寻找一种在 .NET 项目中验证全球邮政编码的方法,但我并不是真的想提出并维护全世界的正则表达式。
我最好希望引入对库的依赖,或者在最坏的情况下使用一些基于网络的服务(但这确实是最后的手段)。
查看 github 上的 PostalCodes.Net 包。
支持大多数国家,界面良好。这是一个例子:
var country = CountryFactory.Instance.CreateCountry("PL");
var postalCode = PostalCodeFactory.Instance.CreatePostalCode(country, "44-100");
对于任何关注 .NET 8 的人。
我发布了 RestCountries (JAVA) 的 C# 端口(重建),与原始 JSON 完全兼容,现在与 ASP.NET 的依赖注入 (DI) 兼容。
此软件包将让您访问电话前缀、国家/地区 ID 的翻译名称等等..
对于 OpenCodeDev.RestCountries.Data 3.1,它包括邮政编码正则表达式模式以及该国家/地区是否需要邮政,这对于国际验证非常有用。
OpenCodeDev.RestCountries.NET 6.0、.NET 8.0 和 .NET 9.0
OpenCodeDev.RestCountries.Data 用于国家数据。
using OpenCodeDev.RestCountries.Embedded;
using OpenCodeDev.RestCountries.Data;
IRestCountries restCountries = new RestCountries(RestCountriesEmbed.GetVersion());
var countries = restCountries.GetAll();
var firstCountry = countries.First();
if (restCountries.IsValidCCA2PostalCode("ca", "H1T2S2"))
Console.WriteLine($"Valid");
else
Console.WriteLine($"Not Valid");