The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Number::Phone::JP - Validate Japanese phone numbers

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 is a simple module to validate Japanese phone number formats. The Japanese phone numbers are regulated by Ministry of Public Management, Home Affairs, Posts and Telecommunications of Japan. You can validate what a target number is valid from this regulation point of view.

There are many categories for type of telephones in Japan. This module is able to be used narrowed down to the type of phones.

This module only validates what a phone number agrees on the regulation. Therefore, it does NOT validate what a phone number actually exists.

This validation needs only an area (or category) prefix and behind it. The separator of number behind the prefix is ignored.

METHODS

new

This method constructs the Number::Phone::JP instance. you can put some argument of a phone number to it. It needs a two stuff for validation, area prefix (or carrier's prefix) and following (means local-area prefix, subscriber's number, and something).

If you put only one argument, this module will separate it by the first non-number character. And it will be ignored any non-number characters.

import

It exists to select what categories is used for validation. You should pass some specified categories to this method.

Categories list is as follows:

 Class1   ... Class1 undertaking associations
 Class2   ... Class2 undertaking associations
 Freedial ... Freedials
 Home     ... Household phones
 IPPhone  ... IP phones
 Mobile   ... Mobile phones
 Pager    ... Pager (called "pocketbell")
 PHS      ... Personal Handy-phone Systems
 Q2       ... Dial Q2 services
 United   ... United phone number
 UPT      ... Universal Personal Telecommunication

The category's names are ignored case. Actually, the import method calls others Number::Phone::JP::Table::Category module and import this. The default importing table, Number::Phone::JP::Table module is including all the categories table.

For importing, you can import by calling this method, and you can import by calling this module with some arguments.

 Example:
  # by calling import method
  use Number::Phone::JP; # import all the categories (default)
  my $tel = Number::Phone::JP->new->import(qw(mobile PHS));
 
  # by calling this module
  use Number::Phone::JP qw(Mobile Phs);
  my $tel = Number::Phone::JP->new; # same as above

set_number

Set/change the target phone number. The syntax of arguments for this method is same as new() method (see above).

is_valid_number

This method validates what the already set number is valid on your specified categories. It returns true if the number is valid, and returns false if the number is invalid.

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 invalid number\n"
     }
 }
 close FH;

AUTHOR

Koichi Taniguchi <taniguchi@livedoor.jp>

LICENSE

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

SEE ALSO

Number::Phone::JP::Table