電話番号パースAPI(ハイフン付き電話番号への変換)



こちらのデモでは、電話番号をパースしハイフン付きで返します。
※”-“(2D),”−”(E28892),”ー”(E383BC),”ー”(EFBDB0),”-”(EFBC8D),”‐”(E28090)これらのハイフンがあってもパースできるように変更
また、固定電話の場合、上6桁(市外局番+市内局番)が存在しない場合、パースした値を返さない仕様です。

電話番号

上記プログラムのソースコードは以下になります。

<script src="https://code.jquery.com/jquery-3.7.1.min.js" integrity="sha256-/JqT3SQfawRcv/BIHPThkBvs0OEvtFFmqPF/lYI/Cxo=" crossorigin="anonymous"></script>
<script>
$(function(){
    $(document).on("click", ".api_submit", function(){
        $.ajax({
            "url": "https://nb3.jp/api/tel/v3/" + encodeURIComponent($("[name=tel]").val()),
            "type": "get",
            "dataType": "jsonp",
            "jsonpCallback":"hoge",
            "xhrFields": { "withCredentials": true },
        }).done(function(res){
            if(res.status=="success") {
                console.log("success",res);
                $("#res").html(JSON.stringify(res, null , "\t"));
            } else {
                console.log("error",res);
                $("#res").html(JSON.stringify(res, null , "\t"));
                //alert(res.status);
            }
        }).fail(function(res, a, b){
            console.log("fail",res,a,b);
        }).always(function(res){
            //console.log(res);
        });
    });
});
</script>
metaタグに以下を追加するようにしました。
※firefoxは、referrerをちゃんと送ってくるのですが、chromeは、referrerをちゃんと送らなくなっているため。
<meta name=”referrer” content=”no-referrer-when-downgrade”>

apiへ送る際に、電話番号部分をencodeURIComponentでURLをエンコードするようにしました。

2020-11-10 固定電話のデータを更新
2020-11-10 固定電話の場合にarea_infoに少し情報を追加
2020-11-10 総務省が公開している固定電話データをcsvに変換してからDBへ登録していたのを、xlsデータのままパースしDBへ登録できるようにプログラム更新
2020-11-22 成功時のstatusの文字列が誤っていたのを修正
2021-01-08 macやiphoneなどapple製品を利用しているユーザーでハイフンが”‐”(E28090)を使うユーザーがいるためこれを許すようにし変更
2021-08-27 返り値のjsonデータを見やすくなるように変更
 javascript部分:JSON.stringify(res) ⇒ JSON.stringify(res, null , “\t”)
 html部分:表示領域をdivからpreへ変更と高さを100pxから20emへ
2022-05-16 81(+81)で始まる場合81を0に置換しパースするように変更
2023-10-11:下記文字の置換
 ’①’,’②’,’③’,’④’,’⑤’,’⑥’,’⑦’,’⑧’,’⑨’,’⓪’,
 ’⓵’,’⓶’,’⓷’,’⓸’,’⓹’,’⓺’,’⓻’,’⓼’,’⓽’,
 ’Ⅰ’,’Ⅱ’,’Ⅲ’,’Ⅳ’,’Ⅴ’,’Ⅵ’,’Ⅶ’,’Ⅷ’,’Ⅸ’,
 ’ⅰ’,’ⅱ’,’ⅲ’,’ⅳ’,’ⅴ’,’ⅵ’,’ⅶ’,’ⅷ’,’ⅸ’,
 ’一’,’壱’,’二’,’弐’,’三’,’参’,’四’,’肆’,’五’,’伍’,’六’,’陸’,’七’,’漆’,’質’,’八’,’捌’,’九’,’玖’,’零’
2023-10-11:返り値にcode追加

コード メッセージ
status success
0000-0000
status error
E000-0001 番号が入力されていません
E000-0002 電話番号が入力されていません
E000-0003 数字+ハイフン以外の文字が含まれています
E000-0004 市外局番+市内局番が割り当てられていない番号です
E000-0005 存在しない番号です
E000-0006

スポンサーリンク