我需要使用PHP和regex验证意大利语地址。我必须这样写:
Via/Corso (meaning street)/Viale (boulevard)/Piazza (square) [road] (,) [civic number], [city] ([abbreviation of province]).
一个例子是:
我在前一篇文章中找到了完整的澳大利亚地址的解决方案,但我不知道如何更改它。以下是代码和一个被认为有效的地址示例:
(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"]);
感谢所有能帮助我解决这个问题的人。
你会想要做这样的事情,只要确保使用i
标志运行它以使其不区分大小写:
(via|corso|viale|piazza) ([a-zA-Z ]+?),? (\d+), (\w+) \((\w+)\)
主要棘手的是第一个开关,由于有多少类型的街道,这有点乱。我只是注意到你实际上并不需要这些组,所以除了第一组括号之外,你可以摆脱它们:
(via|corso|viale|piazza) [a-zA-Z ]+?,? \d+, \w+ \(\w+\)
如果你想要提取它们,它们不会受到伤害。