Как создать регулярное выражение для проверки почтовых и почтовых индексов? - PullRequest
1 голос
/ 05 января 2010

Мне нужно регулярное выражение для проверки почтового индекса или почтового индекса - оно должно быть 8 символов буквенно-цифровое поле, т.е. разрешить A-Z, a-z или 0-9.

Спасибо.

Ответы [ 4 ]

9 голосов
/ 05 января 2010
^[a-zA-Z0-9]{8}$

Это также будет работать, но обычно допускает подчеркивание: ^\w{8}$

Обновление:

Чтобы разрешить свободные пробелы в строке (для простоты это допускает дополнительные пробелы в конце строки, но не в начале):

^([a-zA-Z0-9]\s*){8}$

Это позволяет освободить пробелы, дефисы и (обратно)? Косые черты, которые являются общими в почтовых индексах:

^([a-zA-Z0-9][\s\\/-]*){8}$
0 голосов
/ 27 января 2010

Если вы заинтересованы в проверке адресов по всему миру, ознакомьтесь с http://intlmailaddress.com.. Он имеет форматы почтовых адресов, почтовые индексы и форматы телефонов из 246 стран. Названия регионов (например, штат, провинция, эмират, шэн и т. Д.)

0 голосов
/ 17 января 2010

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

Например, сначала я проверяю код страны, и если это США, я могу указать более конкретно:

   if (countryCode == "US") {

      regex = "^\d{5}([\-]\d{4})?$";    // trim string first
   }
   else {

       // see other answers!
   }

(конечно, это относится к любой стране, например, Великобритании, где почтовые индексы имеют фиксированный формат)

0 голосов
/ 06 января 2010

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

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