our
$VERSION
= 1.20250323211837;
my
$formatters
= [
{
'format'
=>
'$1 $2 $3'
,
'leading_digits'
=>
'2'
,
'national_rule'
=>
'0$1'
,
'pattern'
=>
'(\\d)(\\d{3})(\\d{4})'
},
{
'format'
=>
'$1 $2 $3'
,
'leading_digits'
=>
'[13-9]'
,
'national_rule'
=>
'0$1'
,
'pattern'
=>
'(\\d{2})(\\d{3})(\\d{3,4})'
},
{
'format'
=>
'$1 $2 $3'
,
'leading_digits'
=>
'1'
,
'pattern'
=>
'(\\d{4})(\\d{3})(\\d{3})'
}
];
my
$validators
= {
'fixed_line'
=> '
(?:
1[0689]|
2\\d|
3[2-9]|
4[2-5]|
5[2-6]|
7[3-7]
)\\d{6}
',
'geographic'
=> '
(?:
1[0689]|
2\\d|
3[2-9]|
4[2-5]|
5[2-6]|
7[3-7]
)\\d{6}
',
'mobile'
=> '
67(?:
1[0-8]|
2[4-7]
)\\d{5}|
(?:
14|
6[1-6]|
[89]\\d
)\\d{7}
',
'pager'
=>
''
,
'personal_number'
=>
''
,
'specialrate'
=>
'(1900\\d{6})'
,
'toll_free'
=> '
(?:
001800\\d|
1800
)\\d{6}
',
'voip'
=>
'6[08]\\d{7}'
};
my
%areanames
= ();
$areanames
{en} = {
"6653"
,
"Chiang\ Mai\/Chiang\ Rai\/Lamphun\/Mae\ Hong\ Son"
,
"6638"
,
"Chachoengsao\/Chon\ Buri\/Rayong"
,
"6639"
,
"Chanthaburi\/Trat"
,
"6675"
,
"Krabi\/Nakhon\ Si\ Thammarat\/Trang"
,
"6674"
,
"Phatthalung\/Satun\/Songkhla"
,
"6652"
,
"Chiang\ Mai\/Chiang\ Rai\/Lamphun\/Mae\ Hong\ Son"
,
"6632"
,
"Phetchaburi\/Prachuap\ Khiri\ Khan\/Ratchaburi"
,
"6633"
,
"Chachoengsao\/Chon\ Buri\/Rayong"
,
"6637"
,
"Nakhon\ Nayok\/Prachin\ Buri\/Sa\ Kaeo"
,
"6610"
,
"Bangkok\/Nonthaburi\/Pathum\ Thani\/Samut\ Prakan"
,
"6644"
,
"Buri\ Ram\/Chaiyaphum\/Nakhon\ Ratchasima\/Surin"
,
"6656"
,
"Chai\ Nat\/Nakhon\ Sawan\/Phetchabun\/Phichit\/Uthai\ Thani"
,
"6645"
,
"Amnat\ Charoen\/Si\ Sa\ Ket\/Ubon\ Ratchathani\/Yasothon"
,
"662"
,
"Bangkok\/Nonthaburi\/Pathum\ Thani\/Samut\ Prakan"
,
"6636"
,
"Lop\ Buri\/Saraburi\/Sing\ Buri"
,
"6635"
,
"Ang\ Thong\/Phra\ Nakhon\ Si\ Ayutthaya\/Suphan\ Buri"
,
"6634"
,
"Kanchanaburi\/Nakhon\ Pathom\/Samut\ Sakhon\/Samut\ Songkhram"
,
"6618"
,
"Bangkok\/Nonthaburi\/Pathum\ Thani\/Samut\ Prakan"
,
"6619"
,
"Bangkok\/Nonthaburi\/Pathum\ Thani\/Samut\ Prakan"
,
"6654"
,
"Lampang\/Nan\/Phayao\/Phrae"
,
"6677"
,
"Chumphon\/Ranong\/Surat\ Thani"
,
"6673"
,
"Narathiwat\/Pattani\/Yala"
,
"6655"
,
"Kamphaeng\ Phet\/Phitsanulok\/Sukhothai\/Tak\/Uttaradit"
,
"6643"
,
"Kalasin\/Khon\ Kaen\/Maha\ Sarakham\/Roi\ Et"
,
"6616"
,
"Bangkok\/Nonthaburi\/Pathum\ Thani\/Samut\ Prakan"
,
"6676"
,
"Phang\ Nga\/Phuket"
,
"6642"
,
"Loei\/Mukdahan\/Nakhon\ Phanom\/Nong\ Khai\/Sakon\ Nakhon\/Udon\ Thani"
,};
$areanames
{th} = {
"6652"
,
"āđāļāļĩāļĒāļāđāļŦāļĄāđ\/āđāļāļĩāļĒāļāļĢāļēāļĒ\/āļĨāļģāļāļđāļ\/āđāļĄāđāļŪāđāļāļāļŠāļāļ"
,
"6674"
,
"āļāļąāļāļĨāļļāļ\/āļŠāļāļđāļĨ\/āļŠāļāļāļĨāļē"
,
"6675"
,
"āļāļĢāļ°āļāļĩāđ\/āļāļāļĢāļĻāļĢāļĩāļāļĢāļĢāļĄāļĢāļēāļ\/āļāļĢāļąāļ"
,
"6638"
,
"āļāļ°āđāļāļīāļāđāļāļĢāļē\/āļāļĨāļāļļāļĢāļĩ\/āļĢāļ°āļĒāļāļ"
,
"6653"
,
"āđāļāļĩāļĒāļāđāļŦāļĄāđ\/āđāļāļĩāļĒāļāļĢāļēāļĒ\/āļĨāļģāļāļđāļ\/āđāļĄāđāļŪāđāļāļāļŠāļāļ"
,
"6639"
,
"āļāļąāļāļāļāļļāļĢāļĩ\/āļāļĢāļēāļ"
,
"6637"
,
"āļāļāļĢāļāļēāļĒāļ\/āļāļĢāļēāļāļĩāļāļāļļāļĢāļĩ\/āļŠāļĢāļ°āđāļāđāļ§"
,
"6633"
,
"āļāļ°āđāļāļīāļāđāļāļĢāļē\/āļāļĨāļāļļāļĢāļĩ\/āļĢāļ°āļĒāļāļ"
,
"6632"
,
"āđāļāļāļĢāļāļļāļĢāļĩ\/āļāļĢāļ°āļāļ§āļāļāļĩāļĢāļĩāļāļąāļāļāđ\/āļĢāļēāļāļāļļāļĢāļĩ"
,
"662"
,
"āļāļĢāļļāļāđāļāļ\/āļāļāļāļāļļāļĢāļĩ\/āļāļāļļāļĄāļāļēāļāļĩ\/āļŠāļĄāļļāļāļĢāļāļĢāļēāļāļēāļĢ"
,
"6645"
,
"āļāļģāļāļēāļāđāļāļĢāļīāļ\/āļĻāļĢāļĩāļŠāļ°āđāļāļĐ\/āļāļļāļāļĨāļĢāļēāļāļāļēāļāļĩ\/āļĒāđāļŠāļāļĢ"
,
"6656"
,
"āļāļąāļĒāļāļēāļ\/āļāļāļĢāļŠāļ§āļĢāļĢāļāđ\/āđāļāļāļĢāļāļđāļĢāļāđ\/āļāļīāļāļīāļāļĢ\/āļāļļāļāļąāļĒāļāļēāļāļĩ"
,
"6610"
,
"āļāļĢāļļāļāđāļāļ\/āļāļāļāļāļļāļĢāļĩ\/āļāļāļļāļĄāļāļēāļāļĩ\/āļŠāļĄāļļāļāļĢāļāļĢāļēāļāļēāļĢ"
,
"6644"
,
"āļāļļāļĢāļĩāļĢāļąāļĄāļĒāđ\/āļāļąāļĒāļ āļđāļĄāļī\/āļāļāļĢāļĢāļēāļāļŠāļĩāļĄāļē\/āļŠāļļāļĢāļīāļāļāļĢāđ"
,
"6636"
,
"āļĨāļāļāļļāļĢāļĩ\/āļŠāļĢāļ°āļāļļāļĢāļĩ\/āļŠāļīāļāļŦāđāļāļļāļĢāļĩ"
,
"6618"
,
"āļāļĢāļļāļāđāļāļ\/āļāļāļāļāļļāļĢāļĩ\/āļāļāļļāļĄāļāļēāļāļĩ\/āļŠāļĄāļļāļāļĢāļāļĢāļēāļāļēāļĢ"
,
"6619"
,
"āļāļĢāļļāļāđāļāļ\/āļāļāļāļāļļāļĢāļĩ\/āļāļāļļāļĄāļāļēāļāļĩ\/āļŠāļĄāļļāļāļĢāļāļĢāļēāļāļēāļĢ"
,
"6634"
,
"āļāļēāļāļāļāļāļļāļĢāļĩ\/āļāļāļĢāļāļāļĄ\/āļŠāļĄāļļāļāļĢāļŠāļēāļāļĢ\/āļŠāļĄāļļāļāļĢāļŠāļāļāļĢāļēāļĄ"
,
"6635"
,
"āļāđāļēāļāļāļāļ\/āļāļĢāļ°āļāļāļĢāļĻāļĢāļĩāļāļĒāļļāļāļĒāļē\/āļŠāļļāļāļĢāļĢāļāļāļļāļĢāļĩ"
,
"6655"
,
"āļāļģāđāļāļāđāļāļāļĢ\/āļāļīāļĐāļāļļāđāļĨāļ\/āļŠāļļāđāļāļāļąāļĒ\/āļāļēāļ\/āļāļļāļāļĢāļāļīāļāļāđ"
,
"6677"
,
"āļāļļāļĄāļāļĢ\/āļĢāļ°āļāļāļ\/āļŠāļļāļĢāļēāļĐāļāļĢāđāļāļēāļāļĩ"
,
"6673"
,
"āļāļĢāļēāļāļīāļ§āļēāļŠ\/āļāļąāļāļāļēāļāļĩ\/āļĒāļ°āļĨāļē"
,
"6654"
,
"āļĨāļģāļāļēāļ\/āļāđāļēāļ\/āļāļ°āđāļĒāļē\/āđāļāļĢāđ"
,
"6642"
,
"āđāļĨāļĒ\/āļĄāļļāļāļāļēāļŦāļēāļĢ\/āļāļāļĢāļāļāļĄ\/āļŦāļāļāļāļāļēāļĒ\/āļŠāļāļĨāļāļāļĢ\/āļāļļāļāļĢāļāļēāļāļĩ"
,
"6676"
,
"āļāļąāļāļāļē\/āļ āļđāđāļāđāļ"
,
"6643"
,
"āļāļēāļŽāļŠāļīāļāļāļļāđ\/āļāļāļāđāļāđāļ\/āļĄāļŦāļēāļŠāļēāļĢāļāļēāļĄ\/āļĢāđāļāļĒāđāļāđāļ"
,
"6616"
,
"āļāļĢāļļāļāđāļāļ\/āļāļāļāļāļļāļĢāļĩ\/āļāļāļļāļĄāļāļēāļāļĩ\/āļŠāļĄāļļāļāļĢāļāļĢāļēāļāļēāļĢ"
,};
my
$timezones
= {
''
=> [
'Asia/Bangkok'
]
};
sub
new {
my
$class
=
shift
;
my
$number
=
shift
;
$number
=~ s/(^\+66|\D)//g;
my
$self
=
bless
({
country_code
=>
'66'
,
number
=>
$number
,
formatters
=>
$formatters
,
validators
=>
$validators
,
timezones
=>
$timezones
,
areanames
=> \
%areanames
},
$class
);
return
$self
if
(
$self
->is_valid());
$number
=~ s/^(?:0)//;
$self
=
bless
({
country_code
=>
'66'
,
number
=>
$number
,
formatters
=>
$formatters
,
validators
=>
$validators
,
areanames
=> \
%areanames
},
$class
);
return
$self
->is_valid() ?
$self
:
undef
;
}
1;