generalDesc = (new PhoneNumberDesc()) ->setNationalNumberPattern('[12]\d{9}|[135-9]\d{8}|[16]\d{7}|[16-8]\d{6}') ->setPossibleLength([7, 8, 9, 10]); $this->mobile = (new PhoneNumberDesc()) ->setNationalNumberPattern('(?:5(?:2[238]|59)|89[6-9]|99[013-9])\d{6}|(?:3\d|5[1689]|7[06-9]|8[1-8]|9[0-8])\d{7}') ->setExampleNumber('912345678') ->setPossibleLength([9]); $this->premiumRate = (new PhoneNumberDesc()) ->setNationalNumberPattern('1900\d{4,6}') ->setExampleNumber('1900123456') ->setPossibleLength([8, 9, 10]); $this->fixedLine = (new PhoneNumberDesc()) ->setNationalNumberPattern('2(?:0[3-9]|1[0-689]|2[0-25-9]|[38][2-9]|4[2-8]|5[124-9]|6[0-39]|7[0-7]|9[0-4679])\d{7}') ->setExampleNumber('2101234567') ->setPossibleLength([10]); $this->numberFormat = [ (new NumberFormat()) ->setPattern('(\d{3})(\d{4})') ->setFormat('$1 $2') ->setLeadingDigitsPattern(['[17]99']) ->setNationalPrefixFormattingRule('0$1') ->setNationalPrefixOptionalWhenFormatting(true), (new NumberFormat()) ->setPattern('(\d{2})(\d{5})') ->setFormat('$1 $2') ->setLeadingDigitsPattern(['80']) ->setNationalPrefixFormattingRule('0$1') ->setNationalPrefixOptionalWhenFormatting(true), (new NumberFormat()) ->setPattern('(\d{3})(\d{4,5})') ->setFormat('$1 $2') ->setLeadingDigitsPattern(['69']) ->setNationalPrefixFormattingRule('0$1') ->setNationalPrefixOptionalWhenFormatting(true), (new NumberFormat()) ->setPattern('(\d{4})(\d{4,6})') ->setFormat('$1 $2') ->setLeadingDigitsPattern(['1']) ->setNationalPrefixOptionalWhenFormatting(true), (new NumberFormat()) ->setPattern('(\d{2})(\d{3})(\d{2})(\d{2})') ->setFormat('$1 $2 $3 $4') ->setLeadingDigitsPattern(['6']) ->setNationalPrefixFormattingRule('0$1') ->setNationalPrefixOptionalWhenFormatting(true), (new NumberFormat()) ->setPattern('(\d{3})(\d{3})(\d{3})') ->setFormat('$1 $2 $3') ->setLeadingDigitsPattern(['[357-9]']) ->setNationalPrefixFormattingRule('0$1') ->setNationalPrefixOptionalWhenFormatting(true), (new NumberFormat()) ->setPattern('(\d{2})(\d{4})(\d{4})') ->setFormat('$1 $2 $3') ->setLeadingDigitsPattern(['2[48]']) ->setNationalPrefixFormattingRule('0$1') ->setNationalPrefixOptionalWhenFormatting(true), (new NumberFormat()) ->setPattern('(\d{3})(\d{4})(\d{3})') ->setFormat('$1 $2 $3') ->setLeadingDigitsPattern(['2']) ->setNationalPrefixFormattingRule('0$1') ->setNationalPrefixOptionalWhenFormatting(true), ]; $this->tollFree = (new PhoneNumberDesc()) ->setNationalNumberPattern('1800\d{4,6}|12(?:0[13]|28)\d{4}') ->setExampleNumber('1800123456') ->setPossibleLength([8, 9, 10]); $this->sharedCost = PhoneNumberDesc::empty(); $this->personalNumber = PhoneNumberDesc::empty(); $this->voip = (new PhoneNumberDesc()) ->setNationalNumberPattern('672\d{6}') ->setExampleNumber('672012345') ->setPossibleLength([9]); $this->pager = PhoneNumberDesc::empty(); $this->uan = (new PhoneNumberDesc()) ->setNationalNumberPattern('(?:[17]99|80\d)\d{4}|69\d{5,6}') ->setExampleNumber('1992000') ->setPossibleLength([7, 8]); $this->voicemail = PhoneNumberDesc::empty(); $this->noInternationalDialling = (new PhoneNumberDesc()) ->setNationalNumberPattern('[17]99\d{4}|69\d{5,6}') ->setPossibleLength([7, 8]); $this->intlNumberFormat = [ (new NumberFormat()) ->setPattern('(\d{2})(\d{5})') ->setFormat('$1 $2') ->setLeadingDigitsPattern(['80']) ->setNationalPrefixFormattingRule('0$1') ->setNationalPrefixOptionalWhenFormatting(true), (new NumberFormat()) ->setPattern('(\d{4})(\d{4,6})') ->setFormat('$1 $2') ->setLeadingDigitsPattern(['1']) ->setNationalPrefixOptionalWhenFormatting(true), (new NumberFormat()) ->setPattern('(\d{2})(\d{3})(\d{2})(\d{2})') ->setFormat('$1 $2 $3 $4') ->setLeadingDigitsPattern(['6']) ->setNationalPrefixFormattingRule('0$1') ->setNationalPrefixOptionalWhenFormatting(true), (new NumberFormat()) ->setPattern('(\d{3})(\d{3})(\d{3})') ->setFormat('$1 $2 $3') ->setLeadingDigitsPattern(['[357-9]']) ->setNationalPrefixFormattingRule('0$1') ->setNationalPrefixOptionalWhenFormatting(true), (new NumberFormat()) ->setPattern('(\d{2})(\d{4})(\d{4})') ->setFormat('$1 $2 $3') ->setLeadingDigitsPattern(['2[48]']) ->setNationalPrefixFormattingRule('0$1') ->setNationalPrefixOptionalWhenFormatting(true), (new NumberFormat()) ->setPattern('(\d{3})(\d{4})(\d{3})') ->setFormat('$1 $2 $3') ->setLeadingDigitsPattern(['2']) ->setNationalPrefixFormattingRule('0$1') ->setNationalPrefixOptionalWhenFormatting(true), ]; } }