用PHP验证意大利街道地址

问题描述 投票:0回答:1

我需要使用PHP和regex验证意大利语地址。我必须这样写:

Via/Corso (meaning street)/Viale (boulevard)/Piazza (square) [road] (,) [civic number], [city] ([abbreviation of province]).

一个例子是:

  • Via Garibaldi 374,都灵(TO)
  • Piazza San Pietro,325,Cerveteri(RM)

我在前一篇文章中找到了完整的澳大利亚地址的解决方案,但我不知道如何更改它。以下是代码和一个被认为有效的地址示例:

(15 Gordon St,3121 Cremorne,Australia)

if(!(preg_match('/^(?:\\d+ [a-zA-Z ]+, ){2}[a-zA-Z ]+$/', trim($_POST["via"])))){
    $via_err = "This street is invalid, insert #, Street name, Zip Code, City, Country.";
} else
    $via = trim($_POST["via"]);

感谢所有能帮助我解决这个问题的人。

php regex validation street-address
1个回答
0
投票

你会想要做这样的事情,只要确保使用i标志运行它以使其不区分大小写:

(via|corso|viale|piazza) ([a-zA-Z ]+?),? (\d+), (\w+) \((\w+)\)

主要棘手的是第一个开关,由于有多少类型的街道,这有点乱。我只是注意到你实际上并不需要这些组,所以除了第一组括号之外,你可以摆脱它们:

(via|corso|viale|piazza) [a-zA-Z ]+?,? \d+, \w+ \(\w+\)

如果你想要提取它们,它们不会受到伤害。

© www.soinside.com 2019 - 2024. All rights reserved.