文書更新:2018年08月29日(水) 午前9時25分40秒

Home > その他 > 郵便番号 > JavaScript の利用 > google 日本語入力 API を使用( 177 )

google日本語入力APIを使用して作ってみました。簡単には、住所を都道府県とそれ以外に分割することができない欠点がある。また、よみがなを読み取ることができない。

郵便番号から住所を検索

郵便番号: 入力例:「000-0000」
住所:

コード

  1. Script部
  2. <SCRIPT LANGUAGE="JavaScript">
    function SearchAddress(){	//住所検索ボタンが押された時に呼ばれる関数
    	var zipcode=document.getElementById("zip").value;	//入力された郵便番号を受け取る
    	var msg;
    	if((msg=CheckZipcode(zipcode))!=null){	//郵便番号のチェック
    		alert(msg);	//エラーメッセージの表示
    		return ;
    	}
    	RemoveScript('//www.google.com/transliterate?langpair=ja-Hira');
    	var target=document.createElement("script");
    	target.src = "//www.google.com/transliterate?langpair=ja-Hira|ja&text="+encodeURIComponent(zipcode)+"&jsonp=GetAddress";	//google日本語入力API
    	document.body.appendChild(target);
    }
    function CheckZipcode(zipcode){	//郵便番号のチェック
    	if(!zipcode) return "郵便番号が入力されていません。";
    	if(!zipcode.match(/^\d{3}-\d{4}$/)){
    		return "[ "+zipcode+" ]は正しくない郵便番号です";
    	}
    	return null;
    }
    function GetAddress(result){	//コールバック関数
    	if(result[0][1][0].match(/^(.{2,3}?(?:都|道|府|県))(.*)$/)){	//検索された情報が住所の形式を形式を整えているかをチェック
    		document.getElementById("address").value=result[0][1][0];//住所を取得
    	}else{
    		document.getElementById("address").value="この郵便番号は存在しない可能性があります。";
    	}
    }
    function RemoveScript(url){
    	for(var i=document.scripts.length-1;i>=0;i--){
    		var p=document.getElementsByTagName('script')[i];
    		if(p.getAttribute('src')!=null&&p.getAttribute('src').indexOf(url)==0){
    			p.parentNode.removeChild(p);
    		}
    	}
    }
    </SCRIPT>

  3. Html部
  4. <form>
    	<table>
    		<tr><th>郵便番号:</th><td><input type="text" id="zip" size="10" maxlength="8"><input type="button" onclick="SearchAddress();return false;" value="住所検索"> 入力例:「000-0000」</td></tr>
    		<tr><th>住所:</th><td><input type="text" id="address" size="70"></td></tr>
    	</table>
    </form>