Number-Phone-JP-0.03 > Number::Phone::JP

名前 (NAME)

Number::Phone::JP - 日本の電話番号の確認

概要 (SYNOPSIS)

 use Number::Phone::JP;
 
 my $tel = Number::Phone::JP->new('012', '34567890');
 print "This is valid!!\n" if $tel->is_valid_number;
 
 $tel->set_number('098 7654 3210');
 print "This is valid!!\n" if $tel->is_valid_number;
 
 $tel->import(qw(mobile PHS));
 $tel->set_number('090-0123-4567');
 print "This is valid!!\n" if $tel->is_valid_number;

説明 (DESCRIPTION)

Number::Phone::JP は、日本の電話番号フォーマットを確認するための シンプルなモジュールです。日本の電話番号は日本の総務省で規定されています。 目的となる番号がこの規格上で妥当であるかの確認ができます。

日本では電話のタイプによって多くの区分があります。このモジュールでは、 電話のタイプを絞って利用することができます。

このモジュールは規格に合致するかを確認するだけです。したがって、 電話番号が実在するかまでは確認しません

確認が必要なのは、地域 (または区分) の局番とそれより後部だけです。 局番の後部にある番号の区切りは無視されます。

メソッド (METHODS)

  • new

    Number::Phone::JP のインスタンスを作ります。引数に電話番号を渡すことが可能です。 その引数は、下記のシンタックスに合致すべきです:

     # 01-2345-6789 のチェック
     # 配列
     "01", "23456789"
     "01", "2345", "6789"
     qw(01 23456789)
     qw(01 2 3 4 5 6 7 8 9)
     # 配列リファレンス
     ["01", "23456789"]
     # スカラー
     "01-2345-6789"
     "01-23456789"
     "(01)2345-6789"
     "(01)23456789"
     "(01)(2345)(6789)"
     "(01)(23456789)"
     "01.2345.6789"
     "01.23456789"
     "01 2345 6789"
     "01 23456789"
     "01 2.3-4(5)6 7-.(8-)9"
     "01(2345)6789" # バージョン 0.03 にて追加

    いくつかの " " (スペース)、"." (ドット)、"-" (ハイフン) と "()" (丸括弧) は、区切り文字として同等に扱われ、それ以外は区切り文字としては推奨されません。 これらの文字は確認前に削除されます。

  • import

    これはどの確認にどの区分を使うかを選択するためにあります。 このメソッドにはどの区分を利用するか、いくつかの区分を明確に渡すべきです。

    以下が区分一覧です:

     Class1   ... 第一種電気通信事業者識別番号
     Class2   ... 第二種電気通信事業者識別番号
     Freedial ... 着信課金用電話 (フリーダイアル)
     Home     ... 固定電話
     IPPhone  ... IP 電話
     Mobile   ... 携帯電話
     Pager    ... ページャ ("ポケベル" と呼ばれます)
     PHS      ... PHS
     Q2       ... 情報料代理徴収用電話 (ダイアル Q2)
     United   ... 統一番号用電話

    区分名は 大文字小文字を区別しません。実際には、import メソッドは 他の Number::Phone::JP::Table::区分 モジュールを呼出し、 インポートします。デフォルトでインポートするテーブルは、Number::Phone::JP::Table モジュールで、これは全区分を含みます。

    インポートするには、このメソッド呼出でインポート可能であり、そして、 引数と併せて モジュール呼出 でもインポート可能です。

     例:
     
      # import メソッド呼出によって
      use Number::Phone::JP; # 全区分のインポート (デフォルト)
      my $tel = Number::Phone::JP->new->import(qw(mobile PHS));
     
      # モジュール呼出によって
      use Number::Phone::JP qw(Mobile Phs);
      my $tel = Number::Phone::JP->new; # 上と同等
  • set_number

    対象の電話番号を設定 / 変更します。このメソッドでの引数のシンタックスは new() メソッドと同じです (上記参照)。

  • is_valid_number

    このメソッドは既にセットされた番号があなたの指定した区分上で妥当であるか を確認します。番号が妥当であれば真を、妥当でなければ偽を返します。

例 (EXAMPLE)

 use Number::Phone::JP qw(mobile phs);
 
 my $tel = Number::Phone::JP->new;
 open FH, 'customer.list' or die "$!";
 while (<FH>) {
     chomp;
     unless ($tel->set_number($_)->is_valid_number) {
         print "$_ is not valid number\n"
     }
 }
 close FH;

質問 (QUESTIONS)

Q: この POD に書いてあるのは読めないし、理解できないよ。だってオイラは日本人だもんねっ。

A: 心配御無用。日本には "Japanized Perl Resources Project" ってのがあるじゃんか。 http://perldocjp.sourceforge.jp/ を見て、和訳された POD をそこで探しなはれ。

(訳注: キモチ的にはこんなノリで書いてあり、作者がそのノリを英語で表現するのは不可能だったので日本語で実現しています)

参考資料 (SEE ALSO)

Number::Phone::JP::Table

作者 (AUTHOR)

谷口公一 <taniguchi@users.sourceforge.jp>

著作権 (COPYRIGHT)

Copyright (c) 2003 Koichi Taniguchi. Japan. All rights reserved.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

翻訳者

谷口公一 <taniguchi@users.sourceforge.jp>