Home > その他 > 郵便番号 > JavaScript の利用 > google 日本語入力 API を使用( 177 )
google日本語入力APIを使用して作ってみました。簡単には、住所を都道府県とそれ以外に分割することができない欠点がある。また、よみがなを読み取ることができない。
<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><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>