Я пробовал несколько регулярных выражений, и некоторые действительные почтовые коды иногда отклоняются.
Поиск в Интернете, Wikipedia и SO, я мог найти только решения для проверки регулярных выражений.
Есть ли метод проверки, который не использует регулярное выражение? На любом языке, я думаю, его было бы легко переносить.
Я считаю, что самым простым было бы сравнение с базой данных почтового кода, но это необходимо было бы периодически поддерживать и обновлять с надежного источника.
Изменить: Чтобы помочь будущим посетителям и не давать вам больше публиковать регулярные выражения, здесь регулярное выражение, которое я тестировал (начиная с 2013-04-24), для работы со всеми почтовыми кодами в Code Point (см. ответ @Mikkel Løkke):
//PHP PCRE (it was on Wikipedia, it isn't there anymore; I might have modified it, don't remember).
$strPostalCode=preg_replace("/[\s]/", "", $strPostalCode);
$bValid=preg_match("/^(GIR 0AA)|(((A[BL]|B[ABDHLNRSTX]?|C[ABFHMORTVW]|D[ADEGHLNTY]|E[HNX]?|F[KY]|G[LUY]?|H[ADGPRSUX]|I[GMPV]|JE|K[ATWY]|L[ADELNSU]?|M[EKL]?|N[EGNPRW]?|O[LX]|P[AEHLOR]|R[GHM]|S[AEGKLMNOPRSTY]?|T[ADFNQRSW]|UB|W[ADFNRSV]|YO|ZE)[1-9]?[0-9]|((E|N|NW|SE|SW|W)1|EC[1-4]|WC[12])[A-HJKMNPR-Y]|(SW|W)([2-9]|[1-9][0-9])|EC[1-9][0-9])[0-9][ABD-HJLNP-UW-Z]{2})$/i", $strPostalCode);