Я думаю, вы должны уточнить свой сценарий использования.
Если вы не находитесь в очень, очень ограниченном сценарии, когда вы знаете, что адреса были введены в соответствии со строгой схемой, анализ адресов для контента является чрезвычайно трудной проблемой и, как правило, довольно бесполезным (если это не raison d'être вашего заявления).
Если вы ограничены какой-либо конкретной страной, в которой есть очень конкретные соглашения для написания адресов, то использование этих регулярных выражений может помочь вам на 90%.
Однако, как только вы начинаете принимать иностранные адреса, вы облажались.
Даже если вы ориентированы на США, есть большая вероятность, что вам, возможно, придется принимать адреса от граждан США, живущих за границей, например.
Опять же, это может быть хорошо в очень узком поле, но почти всегда плохая идея проверять или разделять адреса, которые не были строго проверены и ограничены во время их ввода пользователем.
Когда вы применяете некоторые строгие правила для пользователей, чтобы вводить их адреса, в конечном итоге они оказываются неадекватными даже в лучших компонентах проверки адресов.
Несколько вещей, которые мешают анализу адресов:
- почтовые индексы (почтовые индексы) иногда размещаются до, после или могут вообще не существовать.
- почтовые индексы подчиняются строгим правилам: почтовый индекс из 10 цифр, вероятно, легко определить как недействительный, но как насчет несуществующего? Как насчет других кодов, таких как, например, используемые в Великобритании?
- Как насчет такого места, как Гонконг, где вы можете написать адрес на английском, традиционном китайском или мандаринском языке?
- Что делать, если вы прекрасно разделите свой адрес и напишите его по порядку?
- , даже если вы просто анализируете адреса в США, есть по крайней мере несколько способов описать почтовый ящик: вы также можете использовать до востребования , общая доставка , а затем необходимо добавить 4-значный код к почтовому индексу, который обычно, вероятно, не будет вообще ...
Итог
Если получение адресов в разбираемом формате действительно важно, будьте уверены на 100%, что вы можете получить все возможные комбинации правильно, или у вас будет процент отказов, который будет означать разочарование пользователей и убытки от продаж.
Если у вас нет 100% охвата случая, не применяйте строгие правила к пользователю.
Я не могу сосчитать количество сайтов, с которых я отказался от покупки, потому что им потребовался бы почтовый индекс, если в месте, где я живу, нет ни одного.
Извините за напыщенную речь, но я думаю, что важно, чтобы люди, желающие выполнить проверку адреса и анализ, усердно думали о том, во что они попадают.