【问题标题】:Need to get Zip Code from An Address using Regex in Javascript需要使用 Javascript 中的正则表达式从地址获取邮政编码
【发布时间】:2013-06-22 01:04:44
【问题描述】:

我需要使用正则表达式从 javascript 中的地址中提取邮政编码。

我目前经过的地址是:

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代码。此外,如果我们传递包含相应邮政编码的英国/美国地址,它也应该有效。对此问题的任何帮助将不胜感激。

【问题讨论】:

    标签: java javascript regex geolocation w3c-geolocation


    【解决方案1】:

    看看你的正则表达式:regexr.com

    ^\D+
    

    它匹配从行首 (^)任何非数字(\D)字符,
    这意味着它将从行首开始并以第一个数字结束,在您的情况下它将匹配:

    Vittal Mallya Road, KG Halli, Sampangi Rama Nagar, Bangalore, Karnataka 
    

    然后你删除这个匹配,留下560001, India


    您想要\d{6} - 匹配任何数字 6 次,或 6 个数字。

    然后你可以用Pattern and Matcher提取价值

    【讨论】:

    • 嗨 Ruslashev,Pattern 和 Matcher 方法是否适用于 Javascript?
    • 老实说,我是 Java 和 Javascript 菜鸟,但就我的 google-fu 而言,it's even simpler
    【解决方案2】:

    我认为匹配邮政编码比匹配非数字项目并删除它们更有意义。此模式将匹配地址字符串中的美国邮政编码和加拿大邮政编码

    (\d{5}([ -]\d{4})?$)|(^[ABCEGHJKLMNPRSTVXY]{1}\d{1}[AZ]{1}[ -]\d{1} [AZ]{1}\d{1}$)

    https://regexr.com/455ns

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-13
      • 1970-01-01
      相关资源
      最近更新 更多