generalDesc = (new PhoneNumberDesc()) ->setNationalNumberPattern('00800\d{7}|[2-7]\d{6,7}|[89]\d{6,8}|2\d{5}') ->setPossibleLengthLocalOnly([4, 5]) ->setPossibleLength([6, 7, 8, 9, 12]); $this->mobile = (new PhoneNumberDesc()) ->setNationalNumberPattern('(?:43[07-9]|99[69]\d)\d{5}|(?:8[7-9]|98)\d{7}') ->setExampleNumber('43012345') ->setPossibleLength([8, 9]); $this->premiumRate = (new PhoneNumberDesc()) ->setNationalNumberPattern('90\d{6}') ->setExampleNumber('90123456') ->setPossibleLength([8]); $this->fixedLine = (new PhoneNumberDesc()) ->setNationalNumberPattern('2\d{5,7}|(?:43[1-6]|70[1-9])\d{4,5}|(?:[36]\d|4[124-7]|[57][1-9]|8[1-6]|9[1-7])\d{5,6}') ->setExampleNumber('2123456') ->setPossibleLengthLocalOnly([4, 5]) ->setPossibleLength([6, 7, 8]); $this->numberFormat = [ (new NumberFormat()) ->setPattern('(\d{6})') ->setFormat('$1') ->setLeadingDigitsPattern(['1']) ->setNationalPrefixOptionalWhenFormatting(false), (new NumberFormat()) ->setPattern('(\d)(\d)(\d{2})(\d{2})') ->setFormat('$1 $2 $3 $4') ->setLeadingDigitsPattern(['2']) ->setNationalPrefixFormattingRule('0$1') ->setNationalPrefixOptionalWhenFormatting(false), (new NumberFormat()) ->setPattern('(\d{3})(\d{4})') ->setFormat('$1 $2') ->setLeadingDigitsPattern(['43[1-6]|70[1-9]']) ->setNationalPrefixFormattingRule('0$1') ->setNationalPrefixOptionalWhenFormatting(false), (new NumberFormat()) ->setPattern('(\d)(\d{3})(\d{3,4})') ->setFormat('$1 $2 $3') ->setLeadingDigitsPattern(['2']) ->setNationalPrefixFormattingRule('0$1') ->setNationalPrefixOptionalWhenFormatting(false), (new NumberFormat()) ->setPattern('(\d{2})(\d{3})(\d{2,3})') ->setFormat('$1 $2 $3') ->setLeadingDigitsPattern(['[356]|4[124-7]|7[1-9]|8[1-6]|9[1-7]']) ->setNationalPrefixFormattingRule('0$1') ->setNationalPrefixOptionalWhenFormatting(false), (new NumberFormat()) ->setPattern('(\d{3})(\d{2})(\d{3})') ->setFormat('$1 $2 $3') ->setLeadingDigitsPattern(['(?:70|8)0']) ->setNationalPrefixFormattingRule('0$1') ->setNationalPrefixOptionalWhenFormatting(false), (new NumberFormat()) ->setPattern('(\d{3})(\d{3})(\d{2})') ->setFormat('$1 $2 $3') ->setLeadingDigitsPattern(['43[1-7]|7']) ->setNationalPrefixFormattingRule('0$1') ->setNationalPrefixOptionalWhenFormatting(false), (new NumberFormat()) ->setPattern('(\d{2})(\d{3})(\d{3,4})') ->setFormat('$1 $2 $3') ->setLeadingDigitsPattern(['[48]|9[08]']) ->setNationalPrefixFormattingRule('0$1') ->setNationalPrefixOptionalWhenFormatting(false), (new NumberFormat()) ->setPattern('(\d{3})(\d{3})(\d{3})') ->setFormat('$1 $2 $3') ->setLeadingDigitsPattern(['9']) ->setNationalPrefixFormattingRule('0$1') ->setNationalPrefixOptionalWhenFormatting(false), ]; $this->tollFree = (new PhoneNumberDesc()) ->setNationalNumberPattern('(?:00800\d\d|800)\d{5}') ->setExampleNumber('80012345') ->setPossibleLength([8, 12]); $this->sharedCost = (new PhoneNumberDesc()) ->setNationalNumberPattern('700\d{5}') ->setExampleNumber('70012345') ->setPossibleLength([8]); $this->personalNumber = PhoneNumberDesc::empty(); $this->voip = PhoneNumberDesc::empty(); $this->pager = PhoneNumberDesc::empty(); $this->uan = PhoneNumberDesc::empty(); $this->voicemail = PhoneNumberDesc::empty(); $this->noInternationalDialling = PhoneNumberDesc::empty(); $this->intlNumberFormat = [ (new NumberFormat()) ->setPattern('(\d)(\d)(\d{2})(\d{2})') ->setFormat('$1 $2 $3 $4') ->setLeadingDigitsPattern(['2']) ->setNationalPrefixFormattingRule('0$1') ->setNationalPrefixOptionalWhenFormatting(false), (new NumberFormat()) ->setPattern('(\d{3})(\d{4})') ->setFormat('$1 $2') ->setLeadingDigitsPattern(['43[1-6]|70[1-9]']) ->setNationalPrefixFormattingRule('0$1') ->setNationalPrefixOptionalWhenFormatting(false), (new NumberFormat()) ->setPattern('(\d)(\d{3})(\d{3,4})') ->setFormat('$1 $2 $3') ->setLeadingDigitsPattern(['2']) ->setNationalPrefixFormattingRule('0$1') ->setNationalPrefixOptionalWhenFormatting(false), (new NumberFormat()) ->setPattern('(\d{2})(\d{3})(\d{2,3})') ->setFormat('$1 $2 $3') ->setLeadingDigitsPattern(['[356]|4[124-7]|7[1-9]|8[1-6]|9[1-7]']) ->setNationalPrefixFormattingRule('0$1') ->setNationalPrefixOptionalWhenFormatting(false), (new NumberFormat()) ->setPattern('(\d{3})(\d{2})(\d{3})') ->setFormat('$1 $2 $3') ->setLeadingDigitsPattern(['(?:70|8)0']) ->setNationalPrefixFormattingRule('0$1') ->setNationalPrefixOptionalWhenFormatting(false), (new NumberFormat()) ->setPattern('(\d{3})(\d{3})(\d{2})') ->setFormat('$1 $2 $3') ->setLeadingDigitsPattern(['43[1-7]|7']) ->setNationalPrefixFormattingRule('0$1') ->setNationalPrefixOptionalWhenFormatting(false), (new NumberFormat()) ->setPattern('(\d{2})(\d{3})(\d{3,4})') ->setFormat('$1 $2 $3') ->setLeadingDigitsPattern(['[48]|9[08]']) ->setNationalPrefixFormattingRule('0$1') ->setNationalPrefixOptionalWhenFormatting(false), (new NumberFormat()) ->setPattern('(\d{3})(\d{3})(\d{3})') ->setFormat('$1 $2 $3') ->setLeadingDigitsPattern(['9']) ->setNationalPrefixFormattingRule('0$1') ->setNationalPrefixOptionalWhenFormatting(false), ]; } }