Iphone работает, если строка является почтовым индексом Великобритании - PullRequest
0 голосов
/ 14 декабря 2011

В моем приложении перед отправкой строки мне нужно решить, является ли текст, введенный в текстовое поле, почтовым индексом Великобритании. У меня нет способности к регулярному выражению, чтобы решить это для себя, и после поиска вокруг я, кажется, не могу понять это! Интересно, делал ли кто-нибудь подобное в прошлом?

Или, если кто-нибудь может указать мне правильное направление, я был бы очень признателен!

Tom

Ответы [ 4 ]

3 голосов
/ 14 декабря 2011

для почтовых индексов без пробелов (например, SE19QZ), которые я использую: (меня это еще не подвело ;-))

^([Gg][Ii][Rr] 0[Aa]{2})|((([A-Za-z][0-9]{1,2})|(([A-Za-z][A-Ha-hJ-Yj-y][0-9]{1,2})|(([A-Za-z][0-9][A-Za-z])|([A-Za-z][A-Ha-hJ-Yj-y][0-9]?[A-Za-z])))) [0-9][A-Za-z]{2})

если пробелы (например, SE1 9QZ), то:

^([Gg][Ii][Rr] 0[Aa]{2})|((([A-Za-z][0-9]{1,2})|(([A-Za-z][A-Ha-hJ-Yj-y][0-9]{1,2})|(([A-Za-z][0-9][A-Za-z])|([A-Za-z][A-Ha-hJ-Yj-y][0-9]?[A-Za-z])))) {0,1}[0-9][A-Za-z]{2})$
3 голосов
/ 14 декабря 2011

В Википедии есть хороший раздел об этом . В основном ответ зависит от того, какие патологические случаи вы хотите обработать. Например:

Альтернативное короткое регулярное выражение из схемы BS7666:

[A-Z]{1,2}[0-9R][0-9A-Z]? [0-9][ABD-HJLNP-UW-Z]{2}

Приведенные выше выражения не исключают многих несуществующих кодов городов (таких как A, AA, Z и ZY).

В общем, внимательно прочитайте этот раздел Википедии и решите, что вам нужно.

1 голос
/ 14 декабря 2011

Вы можете сопоставить большинство почтовых кодов с этим регулярным выражением:

/[A-Z]{1,2}[0-9]{1,2}\s?[0-9]{1,2}[A-Z]{1,2}/i

Regular expression visualization

Что означает ... A-Z один или два раза ({1,2}), затем 0-9 1 или два раза, затем пробел \s, необязательно ?, за которым следует 0-9 один или два раза затем A-Z один или два раза.

Это будет соответствовать некоторым ложным срабатываниям, поскольку я могу составлять почтовые индексы, такие как ZZ00 00ZZ, но для точного соответствия всем почтовым индексам единственный способ - это купить данные почтового индекса в почтовом отделении - что довольно дорого. Вы также можете скачать бесплатные базы данных почтовых индексов, но они не имеют 100% покрытия.

Надеюсь, это поможет.

0 голосов
/ 14 декабря 2011

В Википедии есть несколько регулярных выражений для почтовых индексов Великобритании: http://en.wikipedia.org/wiki/Postcodes_in_the_United_Kingdom#Validation

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...