ロゴ(青) Excel/VBA Tips ロゴ(緑)

Tips29: JavaScript で電話番号(局番)の検証/編集 ( page 2 )
             [ 多言語移植… JAVA, PHP, Perl, Python, Ruby, VBA/VB6, VB.net ]

        [ 更新履歴 ]  2019/2/14 : β1.00  ,  2019/3/24 : β 4.40  ,  2019/4/4 : Ver 1.00
                             2019/5/11 : 番号翻訳テーブルを [ 2019/5/7 版 ] に差替えました
                             2020/7/20 : 番号翻訳テーブルを [ 2020/6/1 版 ] に差替えました
                             2022/8/2 : 番号翻訳テーブルを [ 2022/7/1 版 ] に差替えました

電話番号翻訳 テーブル を JSON ファイルから読込み  ⇒  TelephoneCheck_withJSON.js ( ベース バージョン )
            〃                  を ソースコード 内に収録      ⇒  TelephoneCheck.js ( 派生 バージョン )

--- [ Page 1 ] ---
  ( 電話番号の 編集 & 検証 ツール )
  1. 電話番号 編集/検証 ツール [ TelephoneCheck ] について
  2. 固定電話の電話番号について
  3. 番号翻訳テーブル ( JSON ファイル ) の構造
  [ 番号翻訳テーブル 番号翻訳シュミレーター ]
>>> [ Page 2 ] <<<
  4. TelephonCheck ツール 関数 リファレンス
             [ 仕 様 ]  [ ValidateTelephone ]  [ FormatTelephone ]  [ GetTypeTelephone ]  [ InitTelephone ]  [ PhoneNumber ]
  5. ダウンロード / 使用条件 / 更新履歴 他
 
--- [ Page 3 ] ---
  6. 多言語 移植について / 言語別 留意事項  
            [ JAVA , PHP , Perl , Python , Ruby , VBA/VB6 , VB.net ]
------------------------------------------
  [ デバッグ用 テストツール ]    [ カラー表示 ソース コード ]    [ 移植時 言語仕様 把握 ポイント 一覧 ( PDF , A3 ) ]
 

[ この場所への リンク ]


4. TelephoneCheck ツール 関数 リファレンス

-- 最新バージョン Ver 1.00 (番号翻訳テーブル: 2022/7/1 版) , 2022/8/2 ( 更新履歴 )

( a ) 電話番号翻訳 テーブル を JSON ファイルから読込み
          ⇒ TelephoneCheck_withJSON.js ( ベース バージョン ) --  [ カラー表示 ソースコード ]

      ( 注 ) AreaCode4JSON.jsonTelephoneCheck_withJSON.js同じフォルダ に保存します。
              尚、ファイルパス を自動認識する仕様になっていますので、スクリプト 参照 を記載する必要はありません。
              毎回 JSON ファイル を読み込みますので、連続して大量の データ を処理する ケース では処理完了までに
                   時間が掛かります。 そのような利用形態では 「番号翻訳テーブル 内包版 TelephponeCheck.js 」 を使用
                   してください。


( b ) 電話番号翻訳 テーブル を ソースコード 内に収録
          ⇒ TelephoneCheck.js ( 派生 バージョン ) --  [ カラー表示 ソースコード ]
          ( JAVA やVBA 等、多言語移植版は こちら をベースにしています )

      ( 注 ) 現在の番号翻訳テーブルの内容は [ 2022/7/1 版 ]です。
               局番の変更は滅多に実施されませんので、実際の運用では、これで 十分です
               2019年 3月時点では、[ 086-CDE 化 , 2013年 ] を最後に以後は実施されていません。
               2019/5/7 版 変更内容
                  [ 局番の追加 : 025-60x , 025-80x ]
               2020/6/1 版 変更内容
                  [ 局番の追加 : 0158-3x , 0163-9x , 0539-61 , 0865-50 , 0980-6x , 0980-9x ]
                  [ 局番の削除 : 015-41x , 0163-7x , 0164-7x , 0278-4x , 086-365 , 086-367 , 086-998 ]
               2022/7/1 版 変更内容
                  [ 市内局番化 : 09496-x  ⇒  0949-6x ]
                  [ 局番の削除 : 0256-26 , 0283-78 , 0428-98 , 086-369 ]

( c ) デバッグ/検証用のテストツールは こちら です。

( d ) 他に JAVA , PHP , Perl , Python , Ruby , VBA/VB6 , VB.net に移植したバージョン
      あります。


[ この場所への リンク ]
--------------------------------------------------------------------------
  ( 1 ) 以下の 5つの関数を提供しています。
        ( 通常の使用であればPhoneNumber 関数ひとつで十分です )

              ・ ValidateTelephone  … ハイフン/括弧編集された電話番号を検証する関数
              ・ FormatTelephone   … 電話番号( 数字のみ ) をハイフン/括弧で編集する関数
              ・ GetTypeTelephone … 電話番号( 数字のみ ) から局番情報 ( 固定電話/携帯電話 等の種別
                                                    & 区切りサイズ情報 ) を取得する関数
              ・ InitTelephone        … 返却値 ( 連想配列 ) を受け取る変数を初期化する関数
              ・ PhoneNumber        … ValidateTelephone / FormatTelephone の簡易インターフェース 関数

              ローカル 作業用に ヘルプファイル ( chm ) を用意しています。

           

  ( 2 ) 以下の電話番号をサポートしています( 参考:総務省/電気通信番号 指定状況 )。
              ・ 固定電話            [ 10桁 , 0A-BCDE-FGHJ , 0AB-CDE-FGHJ , 0ABC-DE-FGHJ , 0ABCD-E-FGHJ ]
              ・ 携帯電話            [ 11桁 , 0A0-CDEF-GHJK  or  0A0-CDE-FGHJK  , A : 7-9 ]
              ・ 着信課金            [ 10桁 ,  0120-DEF-GHJ   /   11桁 , 0800-DEF-GHJK ]
              ・ IP電話               [ 11桁 , 050-CDEF-GHJK , C : 1-9 ]
              ・ M2M                  [ 11桁 , 020-CDE-FGHJK , C : 1-3/5-9 ]
              ・ ポケベル             [ 11桁 , 020-4DE-FGHJK ]
              ・ FMC サービス     [ 11桁 , 0600-DEF-GHJK ]
              ・ 情報料代理徴収  [ 10桁 , 0990-DEF-GHJ ]  ( 災害募金サービス )
              ・ 全国統一番号     [ 10桁 , 0570-DEF-GHJ ]  ( NTT ナビダイヤル 等 )

  ( 3 ) 局番 に関する注意事項
      ( a ) 固定電話については、番号翻訳テーブル により 全国の局番( 市外局番 + 市内局番 ) を
            忠実に反映した 区切り位置 ( 市外局番 と 市内局番 の 桁数 ) で編集されます。
      ( b ) 市外局番 の 番号割当判定については、全国の市外局番を忠実に反映し、未割当の番号には
            必ず [ ErrId : 未使用局番 ] が返ります。
      ( c ) 市内局番 の 番号割当判定については、番号翻訳テーブル上で 市外局番の 決定に必要な
            桁位置の状況に拠ります。 市内局番の途中で決定すれば、それ以降の桁の番号はフリーですが、
            市内局番の1桁目が [ 0 or 1 ] の場合には [ ErrId : 市内局番 1桁目が [ 0 or 1 ] ] が返ります。
            実際の番号域での 判定状況は 番号翻訳 シュミレータ で確認して下さい。
      ( d ) 携帯電話 [ 060 ] は運用開始が未定な為、サポートしていません。

--------------------------------------------------------------------------
  ValidateTelephone
    ハイフン/括弧編集されている固定電話/携帯電話などの番号編集パターンの正確性を検証する関数です。
    ※※ JAVA , VBA 等、多言語移植版 における インターフェース 変更点こちら を参照してください ※※

    -- 構 文 --
      ValidateTelephone ( TelCode )
            ( Python / Ruby 版では validate_telephone )

      返却値   : 連想配列 型     ( JAVA 版では クラスオブジェクト ,
                    VBA/VB6 版では ユーザー定義型 ( Type ) , VB.net 版では 構造体 ( Structure ) )
      TelCode  : 文字列 型

    -- 引数内容 --
      [ TelCode ]
          ハイフン/括弧編集されている固定電話/携帯電話などの電話番号を指定します。
          編集パターンは下記の3種類です。
              0AB-CDE-FGHJ , 0AB(CDE)FGHJ , (0AB)CDE-FGHJ

          編集されていない電話番号(数字のみ)を指定しても構いません。
          この場合は 0AB-CDE-FGHJ のパターンで編集した結果を受け取れます。

    -- 返却値 --
          { TelType, EditType, TelEdit, ErrId } の連想配列を返します。
          以下のように使用します。 ( サンプルツール の ソースコード に具体例があります )
          var Result = InitTelephone("Value");
          Result = ValidateTelephone( … );
          // var Result = ValidateTelephone( … );   ←変数定義と共に関数結果を受け取る例

          if (Result.ErrId == 0) {
              xxx = Result.TelEdit;


          TelType : 数値 ( 電話番号の種類に応じて下記の値が設定されます )
              1: 固定電話(10桁)  ,  2: 携帯電話(070/080/090, 11桁)  ,  3: 着信課金(0120, 10桁)
              4: 着信課金(0800, 11桁)  ,  5: IP電話(050, 11桁)  ,  6: M2M(020x, 11桁, x≠4)
              7: ポケベル(0204, 11桁)  ,  8: FMC(0600, 11桁)  ,  9: 情報料徴収(0990, 10桁)
              10: 統一番号(0570, 10桁)  ,  -1: other (内容不正時)

          EditType : 数値 ( 編集パターンに応じた下記の値が設定されます)
              1 or 4 : 0AB-CDE-FGHJ
              2 or 5 : 0AB(CDE)FGHJ
              3 or 6 : (0AB)CDE-FGHJ
              9: other ( 内容不正時 )
              ( 携帯電話のみ、[ 3-4-4 桁 ]で区切る ⇒ 1〜3  ,  [ 3-3-5 桁 ]で区切る ⇒ 4〜6 )

          TelEdit : 文字列
              ErrId に応じて以下の内容が設定されます。
              ErrId = 0           :  OK , TelCode のまま
                〃  = 1 , 3 , 5  :  TelCode と 同じパターンで編集し直された電話番号
                〃  = 8           :  OK , ハイフン編集した電話番号 ( TelCode が 数字のみ )
                〃  = 2           :  TelCode のまま ( 未使用局番なので正誤は判断しない )
                〃  = 4 , 6 , 9  :  空文字

          ErrId : 数値 ( 検証結果 が下記の値で設定されます)
              0 : OK , 正しい電話番号編集( 有効な局番 & 桁数 OK  &  区切り位置も正しい )
              1 : 区切り位置不正
              2 : 未使用局番 ( 固定電話 )
              3 : 市内局番 1桁目が [ 0 or 1 ] ( 固定電話 )
              4 : 引数不正 ([数字,ハイフン,括弧]以外がある or 編集パターン不正 or '0'始まりでない or 桁数不足 )
              5 : 引数不正 (局番タイプに応じた桁数と不一致)
              6 : その他のエラー
              8 : OK  , 数字のみで指定された正しい電話番号 ( 有効な局番  &  桁数 OK )
              9 : 引数未定義 ( TelCode )

--------------------------------------------------------------------------
  FormatTelephone
    固定電話/携帯電話などの電話番号( 数字のみ ) を指定の編集パターンで編集する関数です。
    固定電話の場合、全国の局番( 市外局番 + 市内局番 )に応じた編集が施されます。
    ※※ JAVA , VBA 等、多言語移植版 における インターフェース 変更点こちら を参照してください ※※

    -- 構 文 --
      FormatTelephone ( TelCode , EditType )
            ( Python / Ruby 版では format_telephone )

      返却値   : 連想配列 型     ( JAVA 版では クラスオブジェクト ,
                    VBA/VB6 版では ユーザー定義型 ( Type ) , VB.net 版では 構造体 ( Structure ) )
      TelCode  : 文字列 型
      EditType : 数値 型

    -- 引数内容 --
      [ TelCode ]
          固定電話/携帯電話などの電話番号( '0' 始まり の 10桁以上の数字文字列 )を指定します。
          ハイフン等で編集された電話番号はエラーになります。

      [ EditType ]
          編集パターンを下記の数値で指定します。
              1 or 4 : 0AB-CDE-FGHJ
              2 or 5 : 0AB(CDE)FGHJ
              3 or 6 : (0AB)CDE-FGHJ
              ( 携帯電話のみ、[ 3-4-4 桁 ]で区切る ⇒ 1〜3  ,  [ 3-3-5 桁 ]で区切る ⇒ 4〜6 )

    -- 返却値 --
          { TelType, EditType, TelEdit, ErrId } の連想配列を返します。
          以下のように使用します。 ( サンプルツール の ソースコード に具体例があります )
          var Result = InitTelephone("Value");
          Result = FormatTelephone( … );
          // var Result = FormatTelephone( … );   ←変数定義と共に関数結果を受け取る例

          if (Result.ErrId == 0) {
              xxx = Result.TelEdit;


          TelType : 数値 ( 電話番号の種類に応じて下記の値が設定されます )
              1: 固定電話(10桁)  ,  2: 携帯電話(070/080/090, 11桁)  ,  3: 着信課金(0120, 10桁)
              4: 着信課金(0800, 11桁)  ,  5: IP電話(050, 11桁)  ,  6: M2M(020x, 11桁, x≠4)
              7: ポケベル(0204, 11桁)  ,  8: FMC(0600, 11桁)  ,  9: 情報料徴収(0990, 10桁)
              10: 統一番号(0570, 10桁)  ,  -1: other (内容不正時)

          EditType : 数値 ( 引数で指定した値が設定されます )
              1 or 4 : 0AB-CDE-FGHJ
              2 or 5 : 0AB(CDE)FGHJ
              3 or 6 : (0AB)CDE-FGHJ
              9 : other ( 内容不正時 )
              ( 携帯電話のみ、[ 3-4-4 桁 ]で区切る ⇒ 1〜3  ,  [ 3-3-5 桁 ]で区切る ⇒ 4〜6 )

          TelEdit : 文字列
              ErrId に応じて以下の内容が設定されます。
              ErrId = 0           :  OK ,引数( EditType ) に応じて編集された電話番号が設定されます。
                〃  = 1           :  TelCode のまま ( 未使用局番なので編集しません )
                〃  = 2 , 4      :  引数( EditType ) に応じて編集された電話番号が設定されます。
                〃  = 3 , 6 , 9  :  空文字

          ErrId : 数値 ( 下記の値で設定されます)
              0 : OK
              1 : 未使用局番 (固定電話)
              2 : 市内局番 1桁目が [ 0 or 1 ] (固定電話)
              3 : 引数不正 ( TelCode : [ '0' 始まりの数字 ] 以外  or  10桁未満 )
              4 : 引数不正 ( TelCode : 局番タイプに応じた桁数と不一致 )
              6 : 引数不正 ( EditType )
              9 : 引数未定義 ( TelCode/EditType )

  ( 補 足 )
      電話番号を 市外局番 , 市内局番 , 加入者番号 に分割 したい場合は、ハイフン ( EditType = 1 ) で
      編集した結果を Split 関数で分割します。

          var Result = InitTelephone( "Value" );
          Result = FormatTelephone( 電話番号 , 1 );
          if (Result.ErrId == 0) {
              var TelSplit = Result.TelEdit.Split("-");

              TelSplit[ 0 ]  ⇒  市外局番
              TelSplit[ 1 ]  ⇒  市内局番
              TelSplit[ 2 ]  ⇒  加入者番号


--------------------------------------------------------------------------
  GetTypeTelephone
    固定電話/携帯電話などの電話番号( 数字のみ ) から 局番情報 ( 局番タイプ & 桁数 & 区切り位置 ) を取得する関数です。
    固定電話の場合、全国の局番( 市外局番 + 市内局番 )に応じた情報が取得できます。
    ※※ JAVA , VBA 等、多言語移植版 における インターフェース 変更点こちら を参照してください ※※

    -- 構 文 --
      GetTypeTelephone ( TelCode )
            ( Python / Ruby 版では get_type_telephone )

      返却値   : 連想配列 型     ( JAVA 版では クラスオブジェクト ,
                    VBA/VB6 版では ユーザー定義型 ( Type ) , VB.net 版では 構造体 ( Structure ) )
      TelCode  : 文字列 型

    -- 引数内容 --
      [ TelCode ]
          固定電話/携帯電話などの電話番号( '0' 始まり の 数字文字列 ) を指定します。
          局番を決定できる桁数であれば 10/11桁未満でも構いません。
          ハイフン等で編集された電話番号はエラーになります。

    -- 返却値 --
          { TelType, SizeAll, Size1, Size2, Size3 } の連想配列を返します。
          以下のように使用します。 ( サンプルツール の ソースコード に具体例があります )
          var Result = InitTelephone("Type");
          Result = GetTypeTelephone( … );
          // var Result = GetTypeTelephone( … );   ←変数定義と共に関数結果を受け取る例

          if (Result.ErrId == 0) {
              xxx = Result.SizeAll;


          TelType : 数値 ( 電話番号の種類に応じて下記の値が設定されます )
              1: 固定電話(10桁)  ,  2: 携帯電話(070/080/090, 11桁)  ,  3: 着信課金(0120, 10桁)
              4: 着信課金(0800, 11桁)  ,  5: IP電話(050, 11桁)  ,  6: M2M(020x, 11桁, x≠4)
              7: ポケベル(0204, 11桁)  ,  8: FMC(0600, 11桁)  ,  9: 情報料徴収(0990, 10桁)
              10: 統一番号(0570, 10桁)  ,  -1: other (内容不正時)

          SizeAll : 数値
              ErrId に応じて以下の内容が設定されます。
              ErrId = 0 , 2  : TelType に応じた電話番号の桁数 ( 10 or 11 , Size1〜3 の合計値 )
              上記以外     :  0

          Size1 〜 3 : 数値
              ErrId に応じて以下の内容が設定されます。
              ErrId = 0 , 2  :  TelType に応じた電話番号の区切り桁数 ( Size1 には先頭 '0' を含む )
              上記以外     :  0

              固定電話の場合、市外局番( Size1 ), 市内局番( Size2 ), 加入者番号( Size3 = 4 ) です。

          ErrId : 数値 ( 下記の値で設定されます)
              0 : OK
              1 : 未使用局番 (固定電話)
              2 : 市内局番 1桁目が [ 0 or 1 ] (固定電話)
              3 : 電話番号種別が不明 ( 桁数不足で番号翻訳未了 )
              8 : 引数不正 ( TelCode : [ '0' 始まりの数字 ] 以外 )
              9 : 引数未定義 ( TelCode )

--------------------------------------------------------------------------
  InitTelephone
    ValidateTelephone / FormatTelephone / GetTypeTelephone の
    結果 ( 連想配列 ) を受け取る変数に初期化データ を渡す関数です。
    ※※ JAVA , VBA 等、多言語移植版 における インターフェース 変更点こちら を参照してください ※※

    -- 構 文 --
      InitTelephone ( Target )
            ( Python / Ruby 版では init_telephone )

      返却値   : 連想配列 型
      Target    : 文字列 型

    -- 引数内容 --
      [ Target ]
        "Value" --- VaridateTelephone / FormatTelephone
        "Type"  --- GetTypeTelephone
        上記以外 -- "Value" 扱いになります。


    -- 返却値 --
        Target の指定により以下の連想配列を返します。
      Target = "Value"
       { "TelType":-1, "EditType":9, "TelEdit":"", "ErrId":0 }

      Target = "Type"
       { "TelType":-1, "SizeAll":0, "Size1":0, "Size2":0, "Size3":0, "ErrId":0 }



( 補足 )
JavaScript 以外の言語では下記になります。
JAVA , VBA/VB6 , VB.net 版では返却値の構造が異なります ( 連想配列 ではありません ) 。
各言語版の 「留意事項」 を確認して下さい。

-- Perl --
( TelType => -1, EditType => 9, TelEdit => "", ErrId => 0 )
( TelType => -1, SizeAll => 0, Size1 => 0, Size2 => 0, Size3 => 0, ErrId => 0 )

-- PHP --
[ "TelType" => -1, "EditType" => 9, "TelEdit" => "", "ErrId" => 0 ]
[ "TelType" => -1, "SizeAll" => 0, "Size1" => 0, "Size2" => 0, "Size3" => 0, "ErrId" => 0 ]

-- Python --
{ 'TelType':-1, 'EditType':9, 'TelEdit':'', 'ErrId':0 }
{ 'TelType':-1, 'SizeAll':0, 'Size1':0, 'Size2':0, 'Size3':0, 'ErrId':0 }

-- Ruby --
{ TelType: -1, EditType: 9, TelEdit: '', ErrId: 0 }
{ TelType: -1, SizeAll: 0, Size1: 0, Size2: 0, Size3: 0, ErrId: 0 }

--------------------------------------------------------------------------
  PhoneNumber
    VaridateTelephone / FormatTelephone を簡易に利用する為の インターフェース 関数です。
    ※※ JAVA , VBA 等、多言語移植版 における インターフェース 変更点こちら を参照してください ※※

    -- 構 文 --
      PhoneNumber ( TelCode , Action )
            ( Python / Ruby 版では phone_number )
            ( VB.net 版では オーバーロード 関数( Action の指定有無 )です )

      返却値    : 数値 型 or 文字列 型
      TelCode  : 文字列 型
      Action    : 文字列 型

    -- 引数内容 --
      [ TelCode ]
        固定電話/携帯電話などの電話番号( '0' 始まり の 10桁以上の数字文字列 )を指定します。
        Action = "V" の場合は ハイフン/括弧で編集された電話番号。
        Action = "F1"〜"F6" の場合は 未編集の電話番号。

      [ Action ]
        処理方法を以下の値で指定します。
        "V"           --- ValidateTelephone による 検証
        "F1"〜"F6" --- FormatTelephone による ハイフン/括弧編集

        "F1"〜"F6" の2 桁目が編集パターンになります。
            1 or 4 : 0AB-CDE-FGHJ
            2 or 5 : 0AB(CDE)FGHJ
            3 or 6 : (0AB)CDE-FGHJ
            ( 携帯電話のみ、[ 3-4-4 桁 ]で区切る ⇒ 1〜3 , [ 3-3-5 桁 ]で区切る ⇒ 4〜6 )

        -- VB.net 版 特記事項 ( オーバーロード関数 ) --
          Action を 省略 ・・・ ValidateTelephone による 検証 ⇒ 返却値が 数値
          Action に 数値の 1 〜 6 を指定 ・・・ FormatTelephone による ハイフン/括弧編集 ⇒ 返却値が 文字列


    -- 返却値 --
      Action = "V" の場合
            0: 検証エラー , 1 : 検証OK , 2 : 検証OK ( 電話番号が数字のみ )
            ( JavaScript 等では、Boolean 変換すると 0 ⇒ False , 1/2 ⇒ True になります )
            -- Ruby 版 特記事項 --
              Ruby では [ 数値の 0 ] が true と扱われる為、[ 0 ] の 代わりに [ false ] を返します。

            --JAVA 版 特記事項 --
              数値の [ 0 , 1 , 2 ] の 代わりに 文字列の [ "0" . "1" , "2" ] を返します。


      Action = "F1"〜"F6" の場合
            電話番号が正しい場合 : [ Action 2桁目 ] に従って編集した電話番号
            電話番号が誤っている場合 : "Phone Error"

      Action が上記以外 の場合
            空文字が返ります。

    -- 使用方法 --

    if (Boolean(PhoneNumber( 編集電話番号 , "V" )) {
        // 検証OK ( 1 or 2 )
    } else {
        // 検証NG ( 0 )
    }

    switch (PhoneNumber( 編集電話番号 , "V" ) {
        case 0:    // 検証NG
        case 1:    // 検証OK
        case 2:    // 未編集の正しい電話番号
    }

    EditTelphone = PhoneNumber( 電話番号 , "F1" );  // 編集エラーは "Phone Error"


[ この場所への リンク ]

5. ダウンロード / 使用条件 / 更新履歴 他 ( 2022/8/2 : 局番データ更新によるアップデート )

----- ダウンロード -----
下記の各ファイルの文字コードは JavaScript , VBA/VB6 , VB.net ファイルは Shift_JIS 、 他のファイルは UTF-8N です。
UTF-8N の ファイル が ブラウザ閲覧で 文字化け する場合は、Unicode ( UTF-8 ) に エンコード を変更してください。
      FireFox : メニュー > その他 > テキストエンコーディング  ,  I E : 表示 > エンコード
      Edge / Chrome : Chrome ウェブストア から 拡張機能 「 Charset をインストール


(*1) PHP 版 の ソースコード / テストコード ファイル では、先頭/末尾に [ <?php 〜 ?> ]  が入っていますので、
      拡張子部分を [ _php.txt ] にしています。 ダウンロード後に [ .php ] へ変更してください。
(*2) VBA/VB6 の ソースコード / テストコード ファイル では、先頭に 「モジュール名を指定する Attribute
      ステートメント」 が入っていますので、 そのまま インポート で組み込んでください
      「標準モジュール名 : TelephoneCheck / TelephoneCheck_Test 」 として組み込まれます。

----------------------------------------------------------------------------------------
( 1 )  電話番号翻訳テーブル : AreaCode4JSON.json    2022/7/1 版 ( 変更履歴 参照 )    ( UTF8N )

( 2 )  TelephoneCheck ツール ソースコード ( カラー表示 ソースコード )
      ( a )  JavaScript 版 ( JSON ファイル 利用 ) : TelephoneCheck_withJSON.js    [ Ver 1.00 , 2019/4/4 ]
              ※ 局番データ は AreaCode4JSON.json を使用する為、局番データ変更によるアップデートはありません

      --- 以下 ( b )〜( j ) の番号翻訳テーブルは [ 2022/7/1 版 ( 変更履歴 参照 ) ] です ---
      ( b )  JavaScript 版   : TelephoneCheck.js                         [ Ver 1.00 , 2022/8/2]
      ( c )  JAVA 版          : TelephoneCheck.java                     [ Ver 1.00 , 2022/8/2 ]   JAVA 8u192   にて 動作確認済 ( UTF8N )
      ( d )  PHP 版           : TelephoneCheck_php.txt  (*1)         [ Ver 1.00 , 2022/8/2 ]   PHP 5.6.39          〃             ( UTF8N )
      ( e )  Perl 版            : TelephoneCheck.pl                         [ Ver 1.00 , 2022/8/2 ]   Perl 5.14.2          〃             ( UTF8N )
      ( f )  Python 版        : TelephoneCheck.py                         [ Ver 1.00 , 2022/8/2 ]   Python 3.7.2        〃             ( UTF8N )
      ( g )  Ruby 版           : TelephoneCheck.rb                         [ Ver 1.00 , 2022/8/2 ]   Ruby 2.5.3          〃             ( UTF8N )
      ( h )  VBA/VB6 版    : TelephoneCheck_VBA.bas  (*2)      [ Ver 1.00 , 2022/8/2 ]   Excel2010/VBA   〃
      ( i )  VB.net 版         : TelephoneCheck_VBnet.vb            [ Ver 1.00 , 2022/8/2 ]   VB2017/ .NET Framework 4.6.1    〃

      ( j )  Excel 向けアドイン    : PhoneNumberAddin.xla  ( 2022/8/2 , インターフェース は PhoneNumber 関数のみです )
                ( kt関数アドイン Ver 5.30 以降でも ktPhoneNumber 関数の名前で利用できます )

( 3 )  テスト コード  ( テスト ツール ページ )
      ( a )  JAVA         : TelephoneCheck_JAVA_Test.java  ( UTF8N )
      ( b )  PHP           : TelephoneCheck_PHP_Test_php.txt  (*1)  ( UTF8N )
      ( c )  Perl            : TelephoneCheck_Perl_Test.pl  ( UTF8N )
      ( d )  Python        : TelephoneCheck_Python_Test.py  ( UTF8N )
      ( e )  Ruby           : TelephoneCheck_Ruby_Test.rb  ( UTF8N )
      ( f )  VBA/VB6     : TelephoneCheck_VBA_Test.bas  (*2)
      ( g )  VB.net         : TelephoneCheck_VBnet_Test.vb

( 4 )  ヘルプ ファイル  : TelephoneCheckHelp.chm
        ダウンロード 後に プロパティ 【セキュリティ ブロックの解除】 を行なわないと ヘルプ の内容が表示されません。

( 5 )  パッケージファイル  : TelephoneCheck_Pack_20220701.zip   ( ReadMe )
      [ JSON利用版javaScript ] を除く ソースコード , テストツールコード , ヘルプファイル をパッケージ しました。

( 6 )  移植時 言語仕様 把握 ポイント 一覧 ( PDF , A3 サイズ )  : Languege.pdf    ( 印字の際は A4 縮小 して下さい )


----- 使 用 条 件 -----
『 電話番号 編集/検証 ツール TelephoneCheck 』 は フリー ウェアです。
配布ファイル / プログラム の 内容を変更しないという条件で使用/再配布は自由です。

----- 他 言語 への移植について -----
「他 言語」 への移植については必ずご連絡をお願いします。
また、「他 言語」 の ライブラリ 共有 コミュニティ ( GitHub 等 ) へ 無断 ( 事後承諾 含む ) で
アップロード されますと、私 ( AddinBox 角田 ) の 管理 から外れてしまいますので御遠慮願います。

----- 著作権・免責 -----
『 電話番号 編集/検証 ツール TelephoneCheck 』 の全ての著作権は 「作者:角田 桂一」 が保持します。
尚、 この ソフト を使用したことで発生したいかなる損害についても、作者は一切責任を負わないものとします。

----- 連 絡 先 -----
『 角田 桂一 (つのだ けいいち)    addinbox@h4.dion.ne.jp
『 ホーム ページ    http://addinbo.sakura.ne.jp/index.htm



-- 更新履歴 --

・ 2022/8/2 Ver 1.00 ( 翻訳テーブル: 2022/7/1 版 )
            [ 市内局番化 : 09496-x  ⇒  0949-6x ]
            [ 局番の削除 : 0256-26 , 0283-78 , 0428-98 , 086-369 ]

・ 2020/7/20 Ver 1.00 ( 翻訳テーブル: 2020/6/1 版 )
            [ 局番の追加 : 0158-3x , 0163-9x , 0539-61 , 0865-50 , 0980-6x , 0980-9x ]
            [ 局番の削除 : 015-41x , 0163-7x , 0164-7x , 0278-4x , 086-365 , 086-367 , 086-998 ]
・ 2019/ 5/11 :  Ver 1.00 ( 番号翻訳テーブル :  2019/5/7 版 , [ 025-60x , 025-80x の局番追加 ] )
・ 2019/ 4/19 :  Excel 向けアドイン [ PhoneNumberAddin.xla ] を公開しました
・ 2019/ 4/ 4 :  Ver 1.00 ( 翻訳テーブル: 2019/4/1 版 ) 正式 リリース 初版
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
β 4.40  ( 2019/3/27 )  以下の変更を施しました。
    ( a ) ValidateTelephone / FormatTelephone の簡易インターフェース [ PoneNumber 関数 ] を追加しました。

β 4.30  ( 2019/3/24 )  以下の変更を施しました。
    ( a ) 返却値を受け取る変数に初期化データを渡す InitTelephone 関数を追加しました。

β 4.20 ( 2019/3/19 ) 以下の変更を施しました。
    ( a ) FormatTelephone において「未使用局番」の ErrId 値が間違っていましたのを修正。

β 4.10 ( 2019/3/16 ) 以下の変更を施しました。
    ( a )  番号翻訳テーブル の修正です。 [ 0499x-x , 056x-xx , 0851x-x , 0991x-x ]番号域において、
           未割当な市外局番(04993 等)が有効になっていましたので修正しました。
           AreaCode4JSON.json  ならびに  ソースコード内収録データ を差し替えました。

β 4.01 ( 2019/3/14 ) 以下の変更を施しました。
    ( a )  動作に不具合はありませんでしたが、GetTypeTelephone 内で [文字列⇒数値] 変換に
           eval 関数を使用していたところを Number 関数に変更しました

β 4.00 ( 2019/3/13 ) 以下の変更を施しました。
    ( a )   多言語移植版 ( 番号翻訳テーブル内包 ) の名称に合わせる為、再度ファイル名を変更しました。
          JSON 利用版    :TelephoneCheck.js  ⇒  TelephoneCheck_withJSON.js
          JSON 未使用版 : TelephoneCheck_UnusedJSON.js  ⇒  TelephoneCheck.js
   ( b )  GetTypeTelephone 関数 を追加 して 番号翻訳処理を FormatTelephone から移管しました。
           これに伴い FormatTelephone はGetTypeTelephone を利用して編集処理を行なうように変更しました。
   ( c ) ValidateTelephone に ErrId : 5 (局番タイプの桁数と不一致)を追加しました。
          FormatTelephone で ErrId : 4 (引数不正(EditType)) を ErrId : 6 に改め、
          新たに ErrId : 4 (局番タイプの桁数と不一致) を追加しました。

β 3.00 ( 2019/3/8 ) 以下の変更を施しました。
   ( a )  ファイル名を変更しました。 ( ValidateTelephone.js ⇒ TelephoneCheck.js )
   ( b )  返却値の要素名を一部変更しました。
          ( Result.Type ⇒ Result.TelType , Result.Edit ⇒ Result.TelEdit , Result.Error ⇒ Result.ErrId )
   ( c )  ソースコード の見直しを行ない、携帯電話 ( 070/080/090 )/着信課金 ( 0120/0800) 等の局番も
           番号翻訳テーブルに収容する構成に変更しました。

β 2.00 ( 2019/2/26 ) 返却値 ( Type ) の エラー( other ) の値を [ 9 から -1 ] に改め、下記番号を追加サポート
          M2M ( 020x ), ポケベル ( 0204 ), FMC ( 0600 ), 情報料代理徴収 ( 0990 ), 全国統一番号 ( 0570 )

β 1.20 ( 2019/2/19 ) ValidateTelephone で [ 数字のみ(電話番号パターン OK) ] で Error = 8 (OK) を追加

β 1.10 ( 2019/2/15 ) 市内局番1桁目が [ 0 or 1 ] 判定を追加

β 1.00 ( 2019/2/14 )  JavaScript 移植 初版

------ ( 2004/10/31 )  ktTelEdit 関数 として kt電話郵便アドイン Ver 1.00 ( Excel ) にて 初 リリース



--------------------------------------------------------------------------
--- [ Page 1 ] ---
  ( 電話番号の 編集 & 検証 ツール )
  1. 電話番号 編集/検証 ツール [ TelephoneCheck ] について
  2. 固定電話の電話番号について
  3. 番号翻訳テーブル ( JSON ファイル ) の構造   [ 番号翻訳テーブル 翻訳シュミレーター ]
>>> [ Page 2 ] <<<
  4. TelephonCheck ツール 関数 リファレンス
  5. ダウンロード / 使用条件 / 更新履歴 他
--- [ Page 3 ] ---
  6. 多言語 移植について / 言語別 留意事項  
--------------
  [ デバッグ用 テストツール ]    [ カラー表示 ソース コード ]    [ 移植時 言語仕様 把握 ポイント 一覧 ( PDF , A3 ) ]
--------------------------------------------------------------------------

ロゴ(ゴールド)   ロゴ(ピンク)

角田 桂一 Mail:addinbox@h4.dion.ne.jp CopyRight(C) 2019 Allrights Reserved.