generalDesc = (new PhoneNumberDesc()) ->setNationalNumberPattern('(?:[2-7]|9\d)\d{8}|2\d{5}|(?:1800|8)\d{7,9}') ->setPossibleLengthLocalOnly([4, 5, 7]) ->setPossibleLength([6, 8, 9, 10, 11, 12, 13]); $this->mobile = (new PhoneNumberDesc()) ->setNationalNumberPattern('(?:8(?:1[37]|9[5-8])|9(?:0[5-9]|1[0-24-9]|[235-7]\d|4[2-9]|8[135-9]|9[1-9]))\d{7}') ->setExampleNumber('9051234567') ->setPossibleLength([10]); $this->premiumRate = PhoneNumberDesc::empty(); $this->fixedLine = (new PhoneNumberDesc()) ->setNationalNumberPattern('(?:(?:2[3-8]|3[2-68]|4[2-9]|5[2-6]|6[2-58]|7[24578])\d{3}|88(?:22\d\d|42))\d{4}|(?:2|8[2-8]\d\d)\d{5}') ->setExampleNumber('232345678') ->setPossibleLengthLocalOnly([4, 5, 7]) ->setPossibleLength([6, 8, 9, 10]); $this->numberFormat = [ (new NumberFormat()) ->setPattern('(\d)(\d{5})') ->setFormat('$1 $2') ->setLeadingDigitsPattern(['2']) ->setNationalPrefixFormattingRule('(0$1)') ->setNationalPrefixOptionalWhenFormatting(false), (new NumberFormat()) ->setPattern('(\d{4})(\d{4,6})') ->setFormat('$1 $2') ->setLeadingDigitsPattern([ '3(?:23|39|46)|4(?:2[3-6]|[35]9|4[26]|76)|544|88[245]|(?:52|64|86)2', '3(?:230|397|461)|4(?:2(?:35|[46]4|51)|396|4(?:22|63)|59[347]|76[15])|5(?:221|446)|642[23]|8(?:622|8(?:[24]2|5[13]))', ]) ->setNationalPrefixFormattingRule('(0$1)') ->setNationalPrefixOptionalWhenFormatting(false), (new NumberFormat()) ->setPattern('(\d{5})(\d{4})') ->setFormat('$1 $2') ->setLeadingDigitsPattern(['346|4(?:27|9[35])|883', '3469|4(?:279|9(?:30|56))|8834']) ->setNationalPrefixFormattingRule('(0$1)') ->setNationalPrefixOptionalWhenFormatting(false), (new NumberFormat()) ->setPattern('(\d)(\d{4})(\d{4})') ->setFormat('$1 $2 $3') ->setLeadingDigitsPattern(['2']) ->setNationalPrefixFormattingRule('(0$1)') ->setNationalPrefixOptionalWhenFormatting(false), (new NumberFormat()) ->setPattern('(\d{2})(\d{3})(\d{4})') ->setFormat('$1 $2 $3') ->setLeadingDigitsPattern(['[3-7]|8[2-8]']) ->setNationalPrefixFormattingRule('(0$1)') ->setNationalPrefixOptionalWhenFormatting(false), (new NumberFormat()) ->setPattern('(\d{3})(\d{3})(\d{4})') ->setFormat('$1 $2 $3') ->setLeadingDigitsPattern(['[89]']) ->setNationalPrefixFormattingRule('0$1') ->setNationalPrefixOptionalWhenFormatting(false), (new NumberFormat()) ->setPattern('(\d{4})(\d{3})(\d{4})') ->setFormat('$1 $2 $3') ->setLeadingDigitsPattern(['1']) ->setNationalPrefixOptionalWhenFormatting(false), (new NumberFormat()) ->setPattern('(\d{4})(\d{1,2})(\d{3})(\d{4})') ->setFormat('$1 $2 $3 $4') ->setLeadingDigitsPattern(['1']) ->setNationalPrefixOptionalWhenFormatting(false), ]; $this->tollFree = (new PhoneNumberDesc()) ->setNationalNumberPattern('1800\d{7,9}') ->setExampleNumber('180012345678') ->setPossibleLength([11, 12, 13]); $this->sharedCost = PhoneNumberDesc::empty(); $this->personalNumber = PhoneNumberDesc::empty(); $this->voip = PhoneNumberDesc::empty(); $this->pager = PhoneNumberDesc::empty(); $this->uan = PhoneNumberDesc::empty(); $this->voicemail = PhoneNumberDesc::empty(); $this->noInternationalDialling = PhoneNumberDesc::empty(); } }