|
Недавно пала на меня, среди прочих, задача валидации почтовых индексов США и Канады. Оказывается, дело это не такое уж и простое. Google много чего подсказывает, но, зачастую, не совсем правильные ответы.
В результате проб и ошибок был достигнут определенный результат. В США почтовые индексы довольно простого формата, поэтому особых проблем не возникает, но с Канадой все сложнее.
Вот регулярные выражения, которые я использовал для валидации (предварительно, я скачал базу всех кодов США и Канады и провалидировал их все):
String canPattern = "^\\d{5}-\\d{4}|\\d{5}|[A-Z]\\d[A-Z] *\\d[A-Z]\\d$";
String usaPattern = "^\\d{5}(-\\d{4})?$";
З.Ы. Канадские индексы должны быть в верхнем регистре (да, это не универсально, но, я считаю, что регулярные выражения должны быть максимально простыми)
|