где я могу получить регулярные выражения для почтового индекса США, Канады / Западной Европы, адреса, телефона, факса и т. д.? - PullRequest
0 голосов
/ 21 сентября 2009

, поэтому я ищу регулярное выражение или какое-либо решение для определения уличного адреса, телефона, факса и т. Д. В западных странах.

я знаю, что это не будет идеально, но все же мой приоритет - адреса улиц США и Канады, провинция / штат, почтовый индекс и т. Д.

было бы хорошо, если бы кто-то вышел и сделал это уже вместо меня, переписывая регулярное выражение ...

Ответы [ 4 ]

1 голос
/ 21 сентября 2009

Канадские почтовые индексы можно проверить, хотя Сайт Почты Канады .

Возвращает диапазон действительных адресов с указанием почтового индекса. Я не уверен, есть ли для этого веб-API, но он может обеспечить гораздо большую точность, чем регулярное выражение.

0 голосов
/ 10 января 2013

Вы можете попробовать это регулярное выражение, это будет работать для всех почтовых индексов США и Канады. например, A1A 1A1 канадские почтовые индексы и, например, 99999 или 99999 8989 американских почтовых индексов

(^\d{5}(-\d{4})?$)|(^[ABCEGHJKLMNPRSTVXY]{1}\d{1}[A-Z]{1} *\d{1}[A-Z]{1}\d{1}$)
0 голосов
/ 21 сентября 2009

Вы можете найти некоторые интересные вещи в подпакетах PEAR::Validate (это на PHP) , которые соответствуют желаемым языкам

Например, в классе Validate_US:

function postalCode($postalCode, $strong = false)
{
    return (bool)preg_match('/^[0-9]{5}((-| )[0-9]{4})?$/', $postalCode);
}

Тот же метод, в классе Validate_FR:

function postalCode($postalCode, $strong = false)
{
      return (bool) preg_match('/^(0[1-9]|[1-9][0-9])[0-9][0-9][0-9]$/', 
                               $postalCode);
}


Но обратите внимание, что этот вид регулярных выражений позволит вам только подтвердить, что данный код выглядит действительным, а не то, что на самом деле является действительным: существует так много почтовых индексов ( еще больше адресов!) , список будет неуправляемым, и кошмар обслуживания, я думаю.

0 голосов
/ 21 сентября 2009

Используя информацию, полученную из этого вопроса Я искал http://regexlib.com и нашел то, что вы ищете

Соответствует либо почтовому индексу, либо почтовому индексу

^\d{5}-\d{4}|\d{5}|[A-Z]\d[A-Z] \d[A-Z]\d$

Телефон или факс:

^\+[0-9]{1,3}\([0-9]{3}\)[0-9]{7}$

Как уже упоминал Бен, вы не сможете проверить, является ли адрес действительным или нет, но вы можете проверить, что формат правильный.

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