我需要使用Regex从javascript中的地址中提取Zip / Postal Code。
我目前通过的地址是:
Vittal Mallya Road,KG Halli,Sampangi Rama Nagar,Bangalore,Karnataka 560001,India
我为获取邮政编码而形成的正则表达式是:
var Zip = results [0] .formatted_address; Zip = Zip.replace(/ ^ \ D + / g,'');
我得到的输出是560001,印度而不是560001.此外,我想忽略可能出现在地址开头的任何数字,如门号码/房屋/街道号码,因为我只关注Zip码。此外,如果我们通过包含相应邮政编码的英国/美国地址,它也应该有效。任何有关此事的帮助都将受到高度赞赏。
答案 0 :(得分:2)
看看你的正则表达式:regexr.com
^\D+
匹配从行开头(^)任何 非数字(\ D) 字符,
这意味着它将从行首开始,以第一个数字结束,在您的情况下,它将匹配:
Vittal Mallya Road, KG Halli, Sampangi Rama Nagar, Bangalore, Karnataka
然后删除此匹配,离开560001, India
您想要\d{6}
- 匹配任意数字6次或6位数。
然后,您可以使用Pattern and Matcher
提取值答案 1 :(得分:0)
我认为匹配邮政编码比匹配非数字项并删除它们更有意义。此模式将在地址字符串中匹配美国邮政编码和加拿大邮政编码
(\ d {5}([-] \ d {4})?$)|(^ [ABCEGHJKLMNPRSTRSTVXY] {1} \ d {1} [AZ] {1} [-] \ d {1} [AZ] {1} \ d {1} $)