RegEx для соответствия британским Почтовым индексам

Вы можете использовать graphql & amp; firebase локально.

Одно слово о «многих обратных переходах, необходимых для разрешения запроса»: если вы не возражаете против данных передано, это не так много, так как все «roundtrips» объединены в один и тот же сокет. Но если вы хотите избежать больших кадров, вам просто нужно положить немного dataloader перед вашей базой данных firebase.

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

Более подробную информацию по этой самой проблеме можно найти на моей средней должности: «Только для клиентской стороны» в реальном времени веб-приложения с Firebase, GraphQL и apollo-client 2.0

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

169
задан Emma 14 May 2019 в 16:18
поделиться

4 ответа

Я рекомендовал бы смотреть на британский правительственный Стандарт Данных для почтовых индексов [ссылка, теперь мертвая; архив XML, см. Википедия для обсуждения]. Существует краткое описание о данных, и приложенная схема XML обеспечивает регулярное выражение. Это не может быть точно, что Вы хотите, но были бы хорошей начальной точкой. RegEx отличается от XML немного, поскольку символ P в третьем положении в формате A9A 9AA позволяется данным определением.

RegEx, предоставленный британским правительством, был:

([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]?))))\s?[0-9][A-Za-z]{2})

, Как указано на обсуждении Википедии, это позволит некоторые нереальные почтовые индексы (например, те стартовый AA, ZY), и они действительно обеспечивают более строгий тест, который Вы могли попробовать.

186
ответ дан 10 revs, 9 users 29% 23 November 2019 в 20:49
поделиться

Первая половина Допустимых форматов почтового индекса

  • исключения [A-Z] [A-Z] [0-9] [A-Z]
  • [A-Z] [A-Z] [0-9] [0-9]
  • [A-Z] [0-9] [0-9]
  • [A-Z] [A-Z] [0-9]
  • [A-Z] [A-Z] [A-Z]
  • [A-Z] [0-9] [A-Z]
  • [A-Z] [0-9]


Положение 1 - QVX, не используемый
Положение 2 - IJZ, не используемый кроме положения 3 GIR 0AA
- AEHMNPRTVXY только использовал
Положение 4 - ABEHMNPRVWXY

Вторая половина почтового индекса

  • исключения [0-9] [A-Z] [A-Z]


Положение 2+3 - CIKMOV, не используемый

, Помнит не, все возможные коды используются, таким образом, этот список является необходимым, но не sufficent условие для допустимого кода. Могло бы быть легче просто соответствовать против списка всех допустимых кодов?

3
ответ дан Martin Beckett 23 November 2019 в 20:49
поделиться
^([A-PR-UWYZ0-9][A-HK-Y0-9][AEHMNPRTVXY0-9]?[ABEHMNPRVWXY0-9]? {1,2}[0-9][ABD-HJLN-UW-Z]{2}|GIR 0AA)$

Регулярное выражение для соответствия допустимым британским почтовым индексам. В британской почтовой системе не все буквы используются во всех положениях (то же с номерными знаками механизма) и существуют различные правила управлять этим. Этот regex принимает во внимание те правила. Детали правил: первая половина Допустимых форматов почтового индекса [A-Z][A-Z] [0-9] [A-Z] [A-Z][A-Z] [0-9] [0-9] [A-Z] [0-9] [0-9] [A-Z][A-Z] [0-9] [A-Z][A-Z][A-Z] [A-Z] [0-9] [A-Z] [A-Z] [0-9] Положение Исключений - Сначала. Contraint - QVX не используемое Положение - Второй. Contraint - IJZ, не используемый кроме GIR 0AA Положение - Треть. Ограничение - AEHMNPRTVXY только использовал Положение - Forth. Contraint - ABEHMNPRVWXY Вторая половина Допустимых форматов почтового индекса [0-9] Положение Исключений [A-Z][A-Z] - Второй и Третий. Contraint - CIKMOV, не используемый

http://regexlib.com/REDetails.aspx?regexp_id=260

17
ответ дан Dan 23 November 2019 в 20:49
поделиться

Взгляните на код Python на этой странице:

http://www.brunningonline.net/simon/blog/archives/001292.html

У меня есть почтовый индекс парсинг делать. Требование довольно простое; Мне нужно разобрать почтовый индекс на исходящий и (необязательно) инкод. Хорошая новость заключается в том, что мне не нужно выполнять какую-либо проверку - мне просто нужно нарезать то, что мне было предоставлено, весьма разумным образом. Я не могу много предполагать о своем импорте с точки зрения форматирования, то есть регистра и встроенных пробелов. Но это не плохие новости; Плохая новость в том, что мне приходится делать все это в ролевой игре. : - (

Тем не менее, я собрал небольшую функцию Python, чтобы прояснить мои мысли.

Я использовал ее для обработки почтовых индексов.

t плохие новости; Плохая новость в том, что мне приходится делать все это в ролевой игре. : - (

Тем не менее, я собрал небольшую функцию Python, чтобы прояснить мои мысли.

Я использовал ее для обработки почтовых индексов.

t плохие новости; Плохая новость в том, что мне приходится делать все это в ролевой игре. : - (

Тем не менее, я собрал небольшую функцию Python, чтобы прояснить мои мысли.

Я использовал ее для обработки почтовых индексов.

1
ответ дан 23 November 2019 в 20:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: