gaggitのブログ

コーディング、ガジェット、TIPS関連、FX

Google Maps APIでビル名があると検索されないので、正規表現で除外する

Google APIで地名から経度緯度をジオコーディングする時にビル名があると、検索結果がZERO RESPONSEとなり、経度緯度が算出されません。そこで、ビル名を除外する正規表現をネットで、探すといいものがありました。アライドアーキテクツのエンジニアブログから、正規表現を引用させていただきました。

tech.aainc.co.jp

上記サイト内から正規表現部分だけ抜粋すると、以下ですが、html内の住所の検索となります。

/([^”‘=])((北海道|東京都|(大阪|京都)府|(神奈川|和歌山|鹿児島)県|[^\s\w\d ]{2}県)[^\s\w\d ] {1,6}[市郡区町村][^\s\w\d ]{1,20}[\d0-9〇一-九十上下東西]+[^\s '”<)」】]*)/

 

htmlではない住所の場合、検索パターンの文頭と文末の([^”‘=])、+[^\s '”<)」】]*を削除し、JavaScriptで記述すると、以下となります。

var myRegExp = new RegExp("((北海道|東京都|(大阪|京都)府|(神奈川|和歌山|鹿児島)県|[^\s\w\d ]{2}県)[^\s\w\d ]{1,6}[市郡区町村][^\s\w\d ]{1,20}[\d0-9〇一-九十上下東西]");
var addr = myRegExp.exec("ビル名が入った住所");

大変ありがったかったです。

 

今日もがじがじっと~♪