需要在Javascript中使用Regex从An Address获取邮政编码

时间:2013-06-25 09:36:12

标签: java javascript regex geolocation w3c-geolocation

我需要使用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码。此外,如果我们通过包含相应邮政编码的英国/美国地址,它也应该有效。任何有关此事的帮助都将受到高度赞赏。

2 个答案:

答案 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} $)

https://regexr.com/455ns