# automatically generated file, don't edit
# Copyright 2011 David Cantrell, derived from data from libphonenumber
# http://code.google.com/p/libphonenumber/
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
package Number::Phone::StubCountry::MY;
use base qw(Number::Phone::StubCountry);
use strict;
use warnings;
use utf8;
our $VERSION = 1.20180410221547;
my $formatters = [
{
'pattern' => '([4-79])(\\d{3})(\\d{4})',
'leading_digits' => '[4-79]',
'national_rule' => '0$1',
'format' => '$1-$2 $3'
},
{
'format' => '$1-$2 $3',
'leading_digits' => '3',
'national_rule' => '0$1',
'pattern' => '(3)(\\d{4})(\\d{4})'
},
{
'format' => '$1-$2 $3',
'leading_digits' => '
1[02-46-9][1-9]|
8
',
'national_rule' => '0$1',
'pattern' => '([18]\\d)(\\d{3})(\\d{3,4})'
},
{
'pattern' => '(1)([36-8]00)(\\d{2})(\\d{4})',
'format' => '$1-$2-$3-$4',
'leading_digits' => '1[36-8]00'
},
{
'national_rule' => '0$1',
'leading_digits' => '11',
'format' => '$1-$2 $3',
'pattern' => '(11)(\\d{4})(\\d{4})'
},
{
'leading_digits' => '15[49]',
'national_rule' => '0$1',
'format' => '$1-$2 $3',
'pattern' => '(15[49])(\\d{3})(\\d{4})'
}
];
my $validators = {
'geographic' => '
(?:
3(?:
2(?:
0(?:
11|
2[0-8]|
3[0-24-79]|
[579]\\d|
8[0-57-9]
)|
1(?:
0[6-9]|
1[03-9]|
[467]\\d|
8[0-2]|
9[13]
)|
2(?:
0[1-3]|
2[2-4]|
4[0-25-7]|
6[0-8]|
7[02-689]|
8\\d|
9[5-9]
)|
3(?:
0[0-3]|
3[0-36]|
8[0-35-9]|
9[1-3]
)|
6(?:
0[0-5]|
[139]\\d|
8[15-8]
)|
7(?:
1\\d|
2[0-7]|
3[0-3]|
42|
7[0-356]|
8[0-35-8]
)|
8(?:
00|
4[78]|
5[6-9]
)|
93[58]
)|
3(?:
0(?:
0[0-35-9]|
10|
5[01]|
8[0-6]|
9[39]
)|
1(?:
0[1-39]|
10|
2[02-469]|
3[245]|
4[0-3589]|
6[0-35-9]|
7[067]|
8[0-57]|
9[0-278]
)|
2(?:
1[3467]|
2[45]|
4[1-3]|
5[0689]|
6[04589]|
7[0-3579]|
8[0-489]|
9[0-27]
)|
3(?:
1[7-9]|
2[1-6]|
4[1-689]|
5[89]|
6[1-3]|
7\\d|
8[125]|
9[236]
)|
6(?:
[12]0|
3[01]|
5[0-256]|
6[08]|
8[45]
)
)|
4(?:
0(?:
09|
[14]\\d|
2[0-8]|
3[12]|
5[01]|
65
)|
1(?:
0[0-8]|
31|
4\\d|
6[12]
)|
2(?:
17|
5[0-35-9]|
6[024-6]|
7[0189]|
8[057-9]|
9\\d
)|
770|
8(?:
0[0-2]|
1[0-3569]|
2[01]
)
)|
5(?:
0(?:
2[0-2]|
3[0-35-9]
)|
1(?:
0[1-3]|
1[05]|
2[0-6]|
31|
6[1-7]|
9[1258]
)|
270|
48[0-5]|
5(?:
1\\d|
2[0-6]|
4[0-589]|
6[125-9]|
9[01]
)|
6(?:
1[1-4]|
2[0-589]|
3\\d|
5[0-3]
)|
7(?:
21|
40
)|
8(?:
7[06-9]|
8[025-9]|
9[12]
)
)|
6(?:
0(?:
2[0-28]|
3[24-9]|
4[246-9]|
5[57]|
6[13-6]|
7[358]|
8[1247]|
9[0-59]
)|
1(?:
[04][0-58]|
15|
2[02-8]|
3[015-9]|
5[016-8]|
7[7-9]|
8[14-9]|
9[1-356]
)|
2(?:
[05]\\d|
11|
[46][1-3]|
7[02-79]|
8[015-7]
)|
303|
4(?:
1[129]|
2[01]|
3[36]|
6[0-2]
)|
690|
7(?:
3\\d|
89
)
)|
7(?:
118|
2(?:
0[02]|
6[01]
)|
4(?:
[59]\\d|
8[01]
)|
6(?:
1[01]|
2\\d|
5[0-2]|
6[0-69]
)|
7(?:
1[0-37-9]|
[28]\\d|
3[1-5]|
7[0-3]
)|
8(?:
[04]\\d|
3[129]|
59|
6[1-356]|
7[02-79]|
8[02-7]|
90
)|
9(?:
10|
3[1-3]|
4[016-9]|
[56]\\d|
7[12]|
8\\d
)
)|
8(?:
0(?:
0[08]|
11|
2[0-7]|
5[12]|
6\\d|
7[013-69]|
8[0-24]|
9[0-5]
)|
100|
21[0-36]|
3(?:
08|
1\\d|
2[0-589]|
31
)|
408|
5(?:
2[0-35-79]|
88
)|
6(?:
0[0-259]|
5[5-79]|
6[01]|
8[46-9]|
9[019]
)|
7(?:
0[35-8]|
2[3-7]|
3\\d|
4[0149]|
5[0-2]|
6[016-9]|
7[5-9]|
8[037]|
90
)|
8(?:
00|
61|
7[0-3]|
8\\d|
9[0-4]
)|
9(?:
1[1-3]|
[2-5]\\d|
6[1-4689]|
8[89]|
9[0-689]
)
)|
9(?:
0(?:
1[0-289]|
2[15]|
5[014-9]|
7[04-68]|
8[0-256]
)|
1(?:
0[0-356]|
3[0-49]|
4[015]|
7[0-59]|
9[15]
)|
2(?:
0[0-25-7]|
12|
2[1-6]|
3[1256]|
7[14]|
8\\d
)|
3[68]8|
41[01]|
5(?:
14|
2[01]|
4[03-9]|
6[5-79]|
7[0-2569]
)
)
)\\d|
4(?:
2(?:
0[01]|
1[07-9]|
2[02-46-9]|
38|
4[0-28]|
5[0-589]|
6[0-47-9]|
8[0-389]|
9[0-38]
)\\d|
3(?:
0[5-9]|
[12][034]|
3[0-37]|
47|
5[168]|
6[7-9]|
7[0135-8]|
8\\d|
9[0-27-9]
)\\d|
4(?:
[02-9]\\d{2}|
1(?:
[02-9]\\d|
10
)
)|
5(?:
[07]\\d{2}|
1[0-358]\\d|
2[1246]\\d|
3[06-9]\\d|
4[0589]\\d|
5[12457-9]\\d|
6[0-689]\\d|
8(?:
[0-57-9]\\d|
60
)|
9(?:
[2-57-9]\\d|
60
)
)|
6(?:
0[79]|
1[0-689]|
2[0135-9]|
[3-5]\\d|
6[07-9]|
7[23]|
8[03-9]|
99
)\\d|
7(?:
0[0-59]\\d|
1[04679]\\d|
2(?:
[02-9]\\d|
10
)|
[37]\\d{2}|
4(?:
[0178]\\d|
5[0-6]
)|
5(?:
[0-57-9]\\d|
60
)|
6[024-689]\\d|
8[0-79]\\d|
9(?:
[0479]\\d|
3[01]
)
)|
8(?:
1[0189]\\d|
2[046-9]\\d|
3[058]\\d|
5[029]\\d|
6(?:
[0689]\\d|
40
)|
8[14568]\\d|
9[0-389]\\d
)|
9(?:
0[1368]\\d|
1[13-9]\\d|
[27]\\d{2}|
3(?:
[0-368]\\d|
7[0-3]
)|
4[013-79]\\d|
5[0-35689]\\d|
6[0-46-9]\\d|
8[0-24-9]\\d|
97\\d
)
)|
5(?:
2(?:
0[13589]\\d|
1[0-2]\\d|
2[056]\\d|
3(?:
[067]\\d|
2[01]
)|
4[0-69]\\d|
5[3-6]\\d|
8[0-25-9]\\d|
9[0-469]\\d
)|
3(?:
[12][0-38]|
3[0-37]|
4[89]|
5[01346-9]|
[67]\\d|
8[01589]|
95
)\\d|
4(?:
0[1346]\\d|
1[02-35-9]\\d|
2[1379]\\d|
3[0-46-9]\\d|
4[013689]\\d|
[59]\\d{2}|
6(?:
[15-9]\\d|
20
)|
7[036-9]\\d|
8[015-8]\\d
)|
5(?:
0[167]\\d|
17\\d|
2[025-9]\\d|
3[035-7]\\d|
4[0-35-9]\\d|
8[13]\\d|
9(?:
[124-9]\\d|
31
)
)|
6(?:
0[89]\\d|
1[02-46-8]\\d|
2[0-69]\\d|
3(?:
[1-367]\\d|
40
)|
4[0-689]\\d|
5(?:
[0-24-9]\\d|
30
)|
6[1457-9]\\d|
7\\d{2}|
8[0-57-9]\\d|
9[0-389]\\d
)|
7(?:
1(?:
[024679]\\d|
80
)|
2[0-35-8]\\d|
3[23]\\d|
4[34]\\d|
5[0-36-9]\\d|
6[356-9]\\d|
7\\d{2}|
8(?:
[23]\\d|
[01]1
)|
9(?:
[1-689]\\d|
70
)
)|
8(?:
0[145-9]\\d|
1[0-2]\\d|
2[09]\\d|
3(?:
[058]\\d|
0[017]
)|
4[016-9]\\d|
5[02-9]\\d|
7(?:
10|
2\\d
)|
8[013589]\\d|
9[0-57-9]\\d
)|
9[23]0\\d
)|
6(?:
2(?:
2[1246-9]\\d|
3[0-5]\\d|
4[02]\\d|
5[1-3]\\d|
[68]\\d{2}|
7(?:
[04-8]\\d|
10
)|
9[2-5]\\d
)|
3(?:
1(?:
[125-9]\\d|
3[01]
)|
3[0-7]\\d|
5[0-478]\\d|
79\\d|
8[3-578]\\d|
9[018]\\d
)|
4(?:
1[015]|
[2-689]\\d|
7[1-79]
)\\d|
5(?:
09\\d|
1(?:
10|
[2479]\\d
)|
2[1-579]\\d|
3(?:
[0-467]\\d|
50
)|
4[0-24-9]\\d|
5\\d{2}|
60\\d
)|
6(?:
0[13]\\d|
1[0-57]\\d|
2[03]\\d|
3[0-478]\\d|
4[0-8]\\d|
5[013-689]\\d|
6[0-467]\\d|
[78]\\d{2}|
9(?:
[13-9]\\d|
20
)
)|
7(?:
01|
2[06-9]|
3[367]|
5[7-9]|
6\\d|
7[0156]|
8[12]|
9[0-47-9]
)\\d|
85[0-26]\\d|
9(?:
0[167]|
10|
[57]\\d|
6[02-9]|
8[013-9]
)\\d
)|
7(?:
2(?:
0[7-9]|
1[016-9]|
2[0-8]|
[39]\\d|
4[014]|
5[0-79]|
6[125-8]|
7[1246-9]|
8[37-9]
)\\d|
3(?:
0[0-5]|
[35]\\d|
40|
5[0-478]|
6[0-5]|
8[0-26-8]
)\\d|
4(?:
0[07-9]|
[1-35]\\d|
6[7-9]|
7[57]|
8[1-68]
)\\d|
5(?:
0[04-9]|
1[0-68]|
2[0-378]|
3[0-3]|
5\\d|
6[0-2]|
7[018]|
8[5-7]|
9[05-9]
)\\d|
6(?:
5[0-24-9]|
6[0-3568]|
7[0457-9]|
8[02-9]|
9\\d
)\\d|
7(?:
0[25-8]\\d|
1(?:
[01]\\d|
20
)|
2[0-2]\\d|
3[489]\\d|
[457-9]\\d{2}|
6(?:
[0-8]\\d|
90
)
)|
8(?:
01[01]|
10\\d|
[289]\\d{2}|
3(?:
[028]\\d|
10
)|
50\\d|
6[0-357-9]\\d|
7(?:
[0235-9]\\d|
[14]0
)
)|
9(?:
0(?:
[0246-8]\\d|
10
)|
[1-4]\\d{2}|
50\\d|
6[014589]\\d|
[7-9]0\\d
)
)|
8(?:
2(?:
2(?:
[013-5]\\d|
[28][0-8]|
6[016]|
7[0-589]|
9[0-49]
)|
3(?:
[02][0-689]|
1[1-59]|
[3-7]\\d|
8[0-389]|
9[13]
)|
4(?:
0[1-3]|
[1-8]\\d|
9[1-359]
)|
5(?:
0[1-7]|
[17]\\d|
20|
3[0-26-9]|
4[1-9]|
5[0-35]|
8[0-689]|
9[02367]
)|
6(?:
[147]\\d|
2[0-25-9]|
39|
5[014-9]|
6[1-9]|
8[1-8]|
9[089]
)|
7(?:
0[017-9]|
1[1-356]|
20|
3[01457-9]|
4[15]|
5[0-25]|
6[0-6]|
70|
8[0-2]|
9[01378]
)|
8(?:
0[3-57-9]|
[15]0|
2[124-9]|
3[01]|
4[02-6]|
6[02-578]|
7\\d|
8[25-8]|
9[04-689]
)
)|
3(?:
220|
3(?:
0[089]|
10|
2[0-7]|
3[7-9]|
4[0-48]
)|
4(?:
0[68]|
1[0-478]|
2[5-79]|
3[024-9]|
50|
6\\d|
7[0-57]|
8[05]|
96
)|
5(?:
4[4578]|
55|
6[2-9]|
70|
8[459]|
92
)
)|
4(?:
2(?:
[15]\\d|
2[0-489]|
3[124-9]
)|
3(?:
0[1-8]|
[1-4]\\d|
5[0-3]|
6[1-7]|
7[56]|
8[0-4]|
9[1-578]
)|
4(?:
05|
80
)|
555|
6(?:
1[0-3]|
20|
3[1-4]|
4[0-24-7]|
5\\d|
6[0-2]|
71|
8[0-47-9]|
9[0-689]
)|
7(
02|
1[79]|
21|
3[0-2468]|
5[0-5]|
6[0256]|
7[0-8]|
8[01589]|
9[026-9]
)|
8(?:
0[1-9]|
1[0-3568]|
2[0138]|
3[0-4]|
4[046-9]|
5[06]|
6\\d|
7[0-579]|
80|
9[0-8]
)
)|
5(?:
2(?:
0[0-26]|
1\\d|
2[0-5]|
3[18]|
4[0-2]|
6[3-68]|
70|
8[025-9]|
9[05-9]
)|
3(?:
10|
2\\d|
31|
95
)|
4(?:
0[1-7]|
[1-4]\\d|
5[02-6]|
6[0-3]|
7[0-245]|
8[125]|
9[1-6]
)|
5(?:
40|
55
)|
6(?:
0[1459]|
1[0-8]|
2[0-36-8]|
3[0-35-8]|
[45]\\d|
6[0-8]|
80
)|
7(?:
1[07-9]|
20|
3[3-9]|
4[02-4]|
5[05689]|
6[015-9]|
7\\d|
8[045]|
9[0-6]
)
)|
6(?:
2(?:
01|
3[12]|
5[1-7]|
60|
8[1-6]|
9[0-8]
)|
3(?:
0[0137]|
[134]\\d|
2[0-8]|
[59][01]|
60|
[78]1
)|
4(?:
2[2-4]|
49|
5[17]|
6\\d|
7[0-46-9]|
8[0-689]
)|
5(?:
0[6-8]|
55|
8[0149]|
90
)|
8(?:
5\\d|
[68]0
)|
9(?:
5[12]|
81
)
)|
7(?:
2(?:
0[189]|
[12][1-9]|
3[0-47]|
50
)|
3(?:
[01][1-9]|
3\\d|
4[0-245]|
6[4-9]|
7[237-9]|
9[12]
)|
4(?:
[0-2]\\d|
3[167-9]|
[45][0-3]|
6[0-8]|
7[25-9]|
8[0-6]|
90
)|
5(?:
0[1-9]|
[89]\\d
)|
7(?:
1[89]|
[27]\\d|
3[013-9]|
4[0-8]|
50|
6[01568]|
82
)|
8(?:
[03][1-3]|
1[0-28]|
2[0-38]|
48|
5[0-4]|
6[1-3]|
7[124]|
8[013-57-9]|
9[07]
)
)|
8(?:
2(?:
0[13-7]|
[1-9]\\d
)|
3(?:
0[1-47-9]|
[128]\\d|
3[0-4]|
4[1-9]|
5[0-35-7]|
6[0-46-9]|
9[3-7]
)|
4(?:
0[1-58]|
1[1-5]|
[2-57-9]\\d|
69
)|
5(?:
1[1-35-9]|
2\\d|
3[2-8]|
52
)|
6(?:
0[2-9]|
1[1-8]|
[23]\\d|
41|
5[12367]|
6[1-9]|
7[14-9]|
8[02-8]|
9[05]
)|
7(?:
0[1-589]|
[1-35-8]\\d|
4[0-7]|
9[0-46-9]
)|
8(?:
01|
30|
5[0-48]|
6[13]|
7\\d|
8[013-689]|
9[24-9]
)|
9(?:
0[2-4689]|
1\\d|
2[08]|
3[18]|
4[03]|
59|
6[0-36-9]|
7[0-35-79]|
8[1235]
)
)|
9(?:
2(?:
[057][1-9]|
[1-3]\\d|
4[0-8]|
6[1-5]|
8[015-9]|
9[04-6]
)|
300|
4(?:
01|
36|
6[1-6]|
[89][12]
)|
5(?:
0[25689]|
1\\d|
2[0134]|
3[1-8]|
5[17]|
6[0-35-9]|
7[0-7]|
91
)|
6(?:
1[1-9]|
2[23]|
3[0-4]|
6[03-9]|
7[0-7]
)|
7(?:
0[1-68]|
1[1-8]|
2[25-9]|
3[056]|
4[4-9]|
[5-8]\\d|
9[0-46-9]
)|
8(?:
0[1-7]|
[189]\\d|
2[1-46]|
4[1-689]|
5[0-79]|
6[1-9]|
71
)|
9(?:
0[1-3]|
1\\d|
2[0-35-7]|
3[67]|
4[12]|
5[0-249]|
6[5-9]|
75|
8[1-6]
)
)
)|
9(?:
2(?:
0[458]\\d|
1[2-57]\\d|
2[0-589]\\d|
[39]\\d{2}|
4(?:
[02-9]\\d|
10
)|
5(?:
[024-6]\\d|
[7-9]0
)|
6(?:
[03-9]\\d|
20
)|
7[0-26-9]\\d|
8(?:
[0-24-68]\\d|
7[01]
)
)|
3(?:
0[0-2689]\\d|
1(?:
[0235]\\d|
1[0-2]|
4[01]
)|
2(?:
0[01]|
[1-57-9]\\d|
6[0-2]
)|
3(?:
00|
1[0-4]|
2\\d
)|
4[05]\\d|
5[0-3568]\\d|
6(?:
[1-357-9]\\d|
60
)|
[78]0\\d
)|
4(?:
0[24578]\\d|
1[02-57-9]\\d|
2\\d{2}|
3(?:
[0278]\\d|
1[01]|
60
)|
4[013579]\\d|
5[0-8]\\d|
6[0678]\\d|
7[013-9]\\d|
8[01569]\\d
)|
5(
0(?:
[589]\\d|
7[01]
)|
1\\d{2}|
2[0159]\\d|
3[14689]\\d|
4[0-46-9]\\d|
5[0-35-9]\\d|
6[0156-8]\\d|
7[0-35]\\d|
8[0-7]\\d|
9[0-3589]\\d
)|
6(?:
0[269]\\d|
[12]\\d{2}|
3[0-57-9]\\d|
44[0-2]|
5[01379]\\d|
6[02-9]\\d|
7[69]\\d|
8(?:
[0-24-8]\\d|
30
)|
9(?:
[0-24-9]\\d|
3[01]
)
)|
7(?:
0[0136-8]|
1[02-4]|
2[156]|
3[258]|
[489]\\d|
5[0-589]|
6[024-9]|
7[0-689]
)\\d|
8(?:
0(?:
0[01]|
1\\d
)|
1[3-9]\\d|
[23]\\d{2}|
4[0-24-689]\\d|
5[0-689]\\d|
6[02-9]\\d|
7(?:
[01]0|
[2-4]\\d
)|
888
)|
9(?:
00\\d|
1[2-57-9]\\d|
2(?:
00|
1[01]|
[238]\\d
)|
3(?:
[2-467]\\d|
50
)|
4[4-9]\\d|
5(?:
[0-2457-9]\\d|
60
)|
6[0156]\\d|
7[04-9]\\d|
8[01]\\d
)
)
)\\d{3}
',
'specialrate' => '(1600\\d{6})',
'mobile' => '
1(?:
0(?:
[23568]\\d|
4[0-6]|
7[016-9]|
9[0-8]
)\\d|
1(?:
[1-5]\\d{2}|
6(?:
0[5-9]|
[1-9]\\d
)
)\\d|
[23679][2-9]\\d{2}|
4(?:
[235-9]\\d{2}|
400
)|
59\\d{3}|
8(?:
1[23]\\d|
[236]\\d{2}|
4(?:
[06]\\d|
7[0-4]
)|
5[7-9]\\d|
7[016-9]\\d|
8(?:
[01]\\d|
[27][0-4]
)|
9[0-8]\\d
)
)\\d{4}
',
'pager' => '',
'personal_number' => '',
'fixed_line' => '
(?:
3(?:
2(?:
0(?:
11|
2[0-8]|
3[0-24-79]|
[579]\\d|
8[0-57-9]
)|
1(?:
0[6-9]|
1[03-9]|
[467]\\d|
8[0-2]|
9[13]
)|
2(?:
0[1-3]|
2[2-4]|
4[0-25-7]|
6[0-8]|
7[02-689]|
8\\d|
9[5-9]
)|
3(?:
0[0-3]|
3[0-36]|
8[0-35-9]|
9[1-3]
)|
6(?:
0[0-5]|
[139]\\d|
8[15-8]
)|
7(?:
1\\d|
2[0-7]|
3[0-3]|
42|
7[0-356]|
8[0-35-8]
)|
8(?:
00|
4[78]|
5[6-9]
)|
93[58]
)|
3(?:
0(?:
0[0-35-9]|
10|
5[01]|
8[0-6]|
9[39]
)|
1(?:
0[1-39]|
10|
2[02-469]|
3[245]|
4[0-3589]|
6[0-35-9]|
7[067]|
8[0-57]|
9[0-278]
)|
2(?:
1[3467]|
2[45]|
4[1-3]|
5[0689]|
6[04589]|
7[0-3579]|
8[0-489]|
9[0-27]
)|
3(?:
1[7-9]|
2[1-6]|
4[1-689]|
5[89]|
6[1-3]|
7\\d|
8[125]|
9[236]
)|
6(?:
[12]0|
3[01]|
5[0-256]|
6[08]|
8[45]
)
)|
4(?:
0(?:
09|
[14]\\d|
2[0-8]|
3[12]|
5[01]|
65
)|
1(?:
0[0-8]|
31|
4\\d|
6[12]
)|
2(?:
17|
5[0-35-9]|
6[024-6]|
7[0189]|
8[057-9]|
9\\d
)|
770|
8(?:
0[0-2]|
1[0-3569]|
2[01]
)
)|
5(?:
0(?:
2[0-2]|
3[0-35-9]
)|
1(?:
0[1-3]|
1[05]|
2[0-6]|
31|
6[1-7]|
9[1258]
)|
270|
48[0-5]|
5(?:
1\\d|
2[0-6]|
4[0-589]|
6[125-9]|
9[01]
)|
6(?:
1[1-4]|
2[0-589]|
3\\d|
5[0-3]
)|
7(?:
21|
40
)|
8(?:
7[06-9]|
8[025-9]|
9[12]
)
)|
6(?:
0(?:
2[0-28]|
3[24-9]|
4[246-9]|
5[57]|
6[13-6]|
7[358]|
8[1247]|
9[0-59]
)|
1(?:
[04][0-58]|
15|
2[02-8]|
3[015-9]|
5[016-8]|
7[7-9]|
8[14-9]|
9[1-356]
)|
2(?:
[05]\\d|
11|
[46][1-3]|
7[02-79]|
8[015-7]
)|
303|
4(?:
1[129]|
2[01]|
3[36]|
6[0-2]
)|
690|
7(?:
3\\d|
89
)
)|
7(?:
118|
2(?:
0[02]|
6[01]
)|
4(?:
[59]\\d|
8[01]
)|
6(?:
1[01]|
2\\d|
5[0-2]|
6[0-69]
)|
7(?:
1[0-37-9]|
[28]\\d|
3[1-5]|
7[0-3]
)|
8(?:
[04]\\d|
3[129]|
59|
6[1-356]|
7[02-79]|
8[02-7]|
90
)|
9(?:
10|
3[1-3]|
4[016-9]|
[56]\\d|
7[12]|
8\\d
)
)|
8(?:
0(?:
0[08]|
11|
2[0-7]|
5[12]|
6\\d|
7[013-69]|
8[0-24]|
9[0-5]
)|
100|
21[0-36]|
3(?:
08|
1\\d|
2[0-589]|
31
)|
408|
5(?:
2[0-35-79]|
88
)|
6(?:
0[0-259]|
5[5-79]|
6[01]|
8[46-9]|
9[019]
)|
7(?:
0[35-8]|
2[3-7]|
3\\d|
4[0149]|
5[0-2]|
6[016-9]|
7[5-9]|
8[037]|
90
)|
8(?:
00|
61|
7[0-3]|
8\\d|
9[0-4]
)|
9(?:
1[1-3]|
[2-5]\\d|
6[1-4689]|
8[89]|
9[0-689]
)
)|
9(?:
0(?:
1[0-289]|
2[15]|
5[014-9]|
7[04-68]|
8[0-256]
)|
1(?:
0[0-356]|
3[0-49]|
4[015]|
7[0-59]|
9[15]
)|
2(?:
0[0-25-7]|
12|
2[1-6]|
3[1256]|
7[14]|
8\\d
)|
3[68]8|
41[01]|
5(?:
14|
2[01]|
4[03-9]|
6[5-79]|
7[0-2569]
)
)
)\\d|
4(?:
2(?:
0[01]|
1[07-9]|
2[02-46-9]|
38|
4[0-28]|
5[0-589]|
6[0-47-9]|
8[0-389]|
9[0-38]
)\\d|
3(?:
0[5-9]|
[12][034]|
3[0-37]|
47|
5[168]|
6[7-9]|
7[0135-8]|
8\\d|
9[0-27-9]
)\\d|
4(?:
[02-9]\\d{2}|
1(?:
[02-9]\\d|
10
)
)|
5(?:
[07]\\d{2}|
1[0-358]\\d|
2[1246]\\d|
3[06-9]\\d|
4[0589]\\d|
5[12457-9]\\d|
6[0-689]\\d|
8(?:
[0-57-9]\\d|
60
)|
9(?:
[2-57-9]\\d|
60
)
)|
6(?:
0[79]|
1[0-689]|
2[0135-9]|
[3-5]\\d|
6[07-9]|
7[23]|
8[03-9]|
99
)\\d|
7(?:
0[0-59]\\d|
1[04679]\\d|
2(?:
[02-9]\\d|
10
)|
[37]\\d{2}|
4(?:
[0178]\\d|
5[0-6]
)|
5(?:
[0-57-9]\\d|
60
)|
6[024-689]\\d|
8[0-79]\\d|
9(?:
[0479]\\d|
3[01]
)
)|
8(?:
1[0189]\\d|
2[046-9]\\d|
3[058]\\d|
5[029]\\d|
6(?:
[0689]\\d|
40
)|
8[14568]\\d|
9[0-389]\\d
)|
9(?:
0[1368]\\d|
1[13-9]\\d|
[27]\\d{2}|
3(?:
[0-368]\\d|
7[0-3]
)|
4[013-79]\\d|
5[0-35689]\\d|
6[0-46-9]\\d|
8[0-24-9]\\d|
97\\d
)
)|
5(?:
2(?:
0[13589]\\d|
1[0-2]\\d|
2[056]\\d|
3(?:
[067]\\d|
2[01]
)|
4[0-69]\\d|
5[3-6]\\d|
8[0-25-9]\\d|
9[0-469]\\d
)|
3(?:
[12][0-38]|
3[0-37]|
4[89]|
5[01346-9]|
[67]\\d|
8[01589]|
95
)\\d|
4(?:
0[1346]\\d|
1[02-35-9]\\d|
2[1379]\\d|
3[0-46-9]\\d|
4[013689]\\d|
[59]\\d{2}|
6(?:
[15-9]\\d|
20
)|
7[036-9]\\d|
8[015-8]\\d
)|
5(?:
0[167]\\d|
17\\d|
2[025-9]\\d|
3[035-7]\\d|
4[0-35-9]\\d|
8[13]\\d|
9(?:
[124-9]\\d|
31
)
)|
6(?:
0[89]\\d|
1[02-46-8]\\d|
2[0-69]\\d|
3(?:
[1-367]\\d|
40
)|
4[0-689]\\d|
5(?:
[0-24-9]\\d|
30
)|
6[1457-9]\\d|
7\\d{2}|
8[0-57-9]\\d|
9[0-389]\\d
)|
7(?:
1(?:
[024679]\\d|
80
)|
2[0-35-8]\\d|
3[23]\\d|
4[34]\\d|
5[0-36-9]\\d|
6[356-9]\\d|
7\\d{2}|
8(?:
[23]\\d|
[01]1
)|
9(?:
[1-689]\\d|
70
)
)|
8(?:
0[145-9]\\d|
1[0-2]\\d|
2[09]\\d|
3(?:
[058]\\d|
0[017]
)|
4[016-9]\\d|
5[02-9]\\d|
7(?:
10|
2\\d
)|
8[013589]\\d|
9[0-57-9]\\d
)|
9[23]0\\d
)|
6(?:
2(?:
2[1246-9]\\d|
3[0-5]\\d|
4[02]\\d|
5[1-3]\\d|
[68]\\d{2}|
7(?:
[04-8]\\d|
10
)|
9[2-5]\\d
)|
3(?:
1(?:
[125-9]\\d|
3[01]
)|
3[0-7]\\d|
5[0-478]\\d|
79\\d|
8[3-578]\\d|
9[018]\\d
)|
4(?:
1[015]|
[2-689]\\d|
7[1-79]
)\\d|
5(?:
09\\d|
1(?:
10|
[2479]\\d
)|
2[1-579]\\d|
3(?:
[0-467]\\d|
50
)|
4[0-24-9]\\d|
5\\d{2}|
60\\d
)|
6(?:
0[13]\\d|
1[0-57]\\d|
2[03]\\d|
3[0-478]\\d|
4[0-8]\\d|
5[013-689]\\d|
6[0-467]\\d|
[78]\\d{2}|
9(?:
[13-9]\\d|
20
)
)|
7(?:
01|
2[06-9]|
3[367]|
5[7-9]|
6\\d|
7[0156]|
8[12]|
9[0-47-9]
)\\d|
85[0-26]\\d|
9(?:
0[167]|
10|
[57]\\d|
6[02-9]|
8[013-9]
)\\d
)|
7(?:
2(?:
0[7-9]|
1[016-9]|
2[0-8]|
[39]\\d|
4[014]|
5[0-79]|
6[125-8]|
7[1246-9]|
8[37-9]
)\\d|
3(?:
0[0-5]|
[35]\\d|
40|
5[0-478]|
6[0-5]|
8[0-26-8]
)\\d|
4(?:
0[07-9]|
[1-35]\\d|
6[7-9]|
7[57]|
8[1-68]
)\\d|
5(?:
0[04-9]|
1[0-68]|
2[0-378]|
3[0-3]|
5\\d|
6[0-2]|
7[018]|
8[5-7]|
9[05-9]
)\\d|
6(?:
5[0-24-9]|
6[0-3568]|
7[0457-9]|
8[02-9]|
9\\d
)\\d|
7(?:
0[25-8]\\d|
1(?:
[01]\\d|
20
)|
2[0-2]\\d|
3[489]\\d|
[457-9]\\d{2}|
6(?:
[0-8]\\d|
90
)
)|
8(?:
01[01]|
10\\d|
[289]\\d{2}|
3(?:
[028]\\d|
10
)|
50\\d|
6[0-357-9]\\d|
7(?:
[0235-9]\\d|
[14]0
)
)|
9(?:
0(?:
[0246-8]\\d|
10
)|
[1-4]\\d{2}|
50\\d|
6[014589]\\d|
[7-9]0\\d
)
)|
8(?:
2(?:
2(?:
[013-5]\\d|
[28][0-8]|
6[016]|
7[0-589]|
9[0-49]
)|
3(?:
[02][0-689]|
1[1-59]|
[3-7]\\d|
8[0-389]|
9[13]
)|
4(?:
0[1-3]|
[1-8]\\d|
9[1-359]
)|
5(?:
0[1-7]|
[17]\\d|
20|
3[0-26-9]|
4[1-9]|
5[0-35]|
8[0-689]|
9[02367]
)|
6(?:
[147]\\d|
2[0-25-9]|
39|
5[014-9]|
6[1-9]|
8[1-8]|
9[089]
)|
7(?:
0[017-9]|
1[1-356]|
20|
3[01457-9]|
4[15]|
5[0-25]|
6[0-6]|
70|
8[0-2]|
9[01378]
)|
8(?:
0[3-57-9]|
[15]0|
2[124-9]|
3[01]|
4[02-6]|
6[02-578]|
7\\d|
8[25-8]|
9[04-689]
)
)|
3(?:
220|
3(?:
0[089]|
10|
2[0-7]|
3[7-9]|
4[0-48]
)|
4(?:
0[68]|
1[0-478]|
2[5-79]|
3[024-9]|
50|
6\\d|
7[0-57]|
8[05]|
96
)|
5(?:
4[4578]|
55|
6[2-9]|
70|
8[459]|
92
)
)|
4(?:
2(?:
[15]\\d|
2[0-489]|
3[124-9]
)|
3(?:
0[1-8]|
[1-4]\\d|
5[0-3]|
6[1-7]|
7[56]|
8[0-4]|
9[1-578]
)|
4(?:
05|
80
)|
555|
6(?:
1[0-3]|
20|
3[1-4]|
4[0-24-7]|
5\\d|
6[0-2]|
71|
8[0-47-9]|
9[0-689]
)|
7(
02|
1[79]|
21|
3[0-2468]|
5[0-5]|
6[0256]|
7[0-8]|
8[01589]|
9[026-9]
)|
8(?:
0[1-9]|
1[0-3568]|
2[0138]|
3[0-4]|
4[046-9]|
5[06]|
6\\d|
7[0-579]|
80|
9[0-8]
)
)|
5(?:
2(?:
0[0-26]|
1\\d|
2[0-5]|
3[18]|
4[0-2]|
6[3-68]|
70|
8[025-9]|
9[05-9]
)|
3(?:
10|
2\\d|
31|
95
)|
4(?:
0[1-7]|
[1-4]\\d|
5[02-6]|
6[0-3]|
7[0-245]|
8[125]|
9[1-6]
)|
5(?:
40|
55
)|
6(?:
0[1459]|
1[0-8]|
2[0-36-8]|
3[0-35-8]|
[45]\\d|
6[0-8]|
80
)|
7(?:
1[07-9]|
20|
3[3-9]|
4[02-4]|
5[05689]|
6[015-9]|
7\\d|
8[045]|
9[0-6]
)
)|
6(?:
2(?:
01|
3[12]|
5[1-7]|
60|
8[1-6]|
9[0-8]
)|
3(?:
0[0137]|
[134]\\d|
2[0-8]|
[59][01]|
60|
[78]1
)|
4(?:
2[2-4]|
49|
5[17]|
6\\d|
7[0-46-9]|
8[0-689]
)|
5(?:
0[6-8]|
55|
8[0149]|
90
)|
8(?:
5\\d|
[68]0
)|
9(?:
5[12]|
81
)
)|
7(?:
2(?:
0[189]|
[12][1-9]|
3[0-47]|
50
)|
3(?:
[01][1-9]|
3\\d|
4[0-245]|
6[4-9]|
7[237-9]|
9[12]
)|
4(?:
[0-2]\\d|
3[167-9]|
[45][0-3]|
6[0-8]|
7[25-9]|
8[0-6]|
90
)|
5(?:
0[1-9]|
[89]\\d
)|
7(?:
1[89]|
[27]\\d|
3[013-9]|
4[0-8]|
50|
6[01568]|
82
)|
8(?:
[03][1-3]|
1[0-28]|
2[0-38]|
48|
5[0-4]|
6[1-3]|
7[124]|
8[013-57-9]|
9[07]
)
)|
8(?:
2(?:
0[13-7]|
[1-9]\\d
)|
3(?:
0[1-47-9]|
[128]\\d|
3[0-4]|
4[1-9]|
5[0-35-7]|
6[0-46-9]|
9[3-7]
)|
4(?:
0[1-58]|
1[1-5]|
[2-57-9]\\d|
69
)|
5(?:
1[1-35-9]|
2\\d|
3[2-8]|
52
)|
6(?:
0[2-9]|
1[1-8]|
[23]\\d|
41|
5[12367]|
6[1-9]|
7[14-9]|
8[02-8]|
9[05]
)|
7(?:
0[1-589]|
[1-35-8]\\d|
4[0-7]|
9[0-46-9]
)|
8(?:
01|
30|
5[0-48]|
6[13]|
7\\d|
8[013-689]|
9[24-9]
)|
9(?:
0[2-4689]|
1\\d|
2[08]|
3[18]|
4[03]|
59|
6[0-36-9]|
7[0-35-79]|
8[1235]
)
)|
9(?:
2(?:
[057][1-9]|
[1-3]\\d|
4[0-8]|
6[1-5]|
8[015-9]|
9[04-6]
)|
300|
4(?:
01|
36|
6[1-6]|
[89][12]
)|
5(?:
0[25689]|
1\\d|
2[0134]|
3[1-8]|
5[17]|
6[0-35-9]|
7[0-7]|
91
)|
6(?:
1[1-9]|
2[23]|
3[0-4]|
6[03-9]|
7[0-7]
)|
7(?:
0[1-68]|
1[1-8]|
2[25-9]|
3[056]|
4[4-9]|
[5-8]\\d|
9[0-46-9]
)|
8(?:
0[1-7]|
[189]\\d|
2[1-46]|
4[1-689]|
5[0-79]|
6[1-9]|
71
)|
9(?:
0[1-3]|
1\\d|
2[0-35-7]|
3[67]|
4[12]|
5[0-249]|
6[5-9]|
75|
8[1-6]
)
)
)|
9(?:
2(?:
0[458]\\d|
1[2-57]\\d|
2[0-589]\\d|
[39]\\d{2}|
4(?:
[02-9]\\d|
10
)|
5(?:
[024-6]\\d|
[7-9]0
)|
6(?:
[03-9]\\d|
20
)|
7[0-26-9]\\d|
8(?:
[0-24-68]\\d|
7[01]
)
)|
3(?:
0[0-2689]\\d|
1(?:
[0235]\\d|
1[0-2]|
4[01]
)|
2(?:
0[01]|
[1-57-9]\\d|
6[0-2]
)|
3(?:
00|
1[0-4]|
2\\d
)|
4[05]\\d|
5[0-3568]\\d|
6(?:
[1-357-9]\\d|
60
)|
[78]0\\d
)|
4(?:
0[24578]\\d|
1[02-57-9]\\d|
2\\d{2}|
3(?:
[0278]\\d|
1[01]|
60
)|
4[013579]\\d|
5[0-8]\\d|
6[0678]\\d|
7[013-9]\\d|
8[01569]\\d
)|
5(
0(?:
[589]\\d|
7[01]
)|
1\\d{2}|
2[0159]\\d|
3[14689]\\d|
4[0-46-9]\\d|
5[0-35-9]\\d|
6[0156-8]\\d|
7[0-35]\\d|
8[0-7]\\d|
9[0-3589]\\d
)|
6(?:
0[269]\\d|
[12]\\d{2}|
3[0-57-9]\\d|
44[0-2]|
5[01379]\\d|
6[02-9]\\d|
7[69]\\d|
8(?:
[0-24-8]\\d|
30
)|
9(?:
[0-24-9]\\d|
3[01]
)
)|
7(?:
0[0136-8]|
1[02-4]|
2[156]|
3[258]|
[489]\\d|
5[0-589]|
6[024-9]|
7[0-689]
)\\d|
8(?:
0(?:
0[01]|
1\\d
)|
1[3-9]\\d|
[23]\\d{2}|
4[0-24-689]\\d|
5[0-689]\\d|
6[02-9]\\d|
7(?:
[01]0|
[2-4]\\d
)|
888
)|
9(?:
00\\d|
1[2-57-9]\\d|
2(?:
00|
1[01]|
[238]\\d
)|
3(?:
[2-467]\\d|
50
)|
4[4-9]\\d|
5(?:
[0-2457-9]\\d|
60
)|
6[0156]\\d|
7[04-9]\\d|
8[01]\\d
)
)
)\\d{3}
',
'toll_free' => '1[378]00\\d{6}',
'voip' => '
154(?:
6(?:
0\\d|
1[0-3]
)|
8(?:
[25]1|
4[0189]|
7[0-4679]
)
)\\d{4}
'
};
sub new {
my $class = shift;
my $number = shift;
$number =~ s/(^\+60|\D)//g;
my $self = bless({ number => $number, formatters => $formatters, validators => $validators, }, $class);
return $self if ($self->is_valid());
$number =~ s/^(?:0)//;
$self = bless({ number => $number, formatters => $formatters, validators => $validators, }, $class);
return $self->is_valid() ? $self : undef;
}
1;