diff --git a/.changeset/chilled-socks-provide.md b/.changeset/chilled-socks-provide.md new file mode 100644 index 00000000..220d9508 --- /dev/null +++ b/.changeset/chilled-socks-provide.md @@ -0,0 +1,5 @@ +--- +"@razorpay/i18nify-js": patch +--- + +fix: fix phone number regex's diff --git a/i18nify-data/phone-number/country-code-to-phone-number/data.json b/i18nify-data/phone-number/country-code-to-phone-number/data.json index 11438d9d..37e70ca5 100644 --- a/i18nify-data/phone-number/country-code-to-phone-number/data.json +++ b/i18nify-data/phone-number/country-code-to-phone-number/data.json @@ -3,42 +3,42 @@ "AF": { "dial_code": "+93", "format": "xx xxx xxxx", - "regex": "^(?:\\+93)?\\d{9}$" + "regex": "[2-7]\\d{8}" }, "AX": { "dial_code": "+358", "format": "xxx xxx", - "regex": "^\\+358\\d{5,8}$" + "regex": "2\\d{4,9}|35\\d{4,5}|(?:60\\d\\d|800)\\d{4,6}|7\\d{5,11}|(?:[14]\\d|3[0-46-9]|50)\\d{4,8}" }, "AL": { "dial_code": "+355", "format": "xxx xx xxxx", - "regex": "^(?:\\+?355)?(?:[4-9]\\d{7}|6\\d{8})$" + "regex": "(?:700\\d\\d|900)\\d{3}|8\\d{5,7}|(?:[2-5]|6\\d)\\d{7}" }, "DZ": { "dial_code": "+213", "format": "xxxx-xxxx-xxx", - "regex": "^(?:\\+?213|0)([567]\\d{8})$" + "regex": "(?:[1-4]|[5-79]\\d|80)\\d{7}" }, "AS": { "dial_code": "+1", "format": "xxx-xxxx", - "regex": "^(?:\\+1-684)?(?:\\d{7})$" + "regex": "(?:[58]\\d\\d|684|900)\\d{7}" }, "AD": { "dial_code": "+376", "format": "xxx xxx", - "regex": "^(?:\\+376)?\\d{6}$" + "regex": "(?:1|6\\d)\\d{7}|[135-9]\\d{5}" }, "AO": { "dial_code": "+244", "format": "xx xxx xxxx", - "regex": "^(?:\\+244)?(?:\\d{9})$" + "regex": "[29]\\d{8}" }, "AI": { "dial_code": "+1", "format": "xxx-xxxx", - "regex": "^(?:\\+1-264)?(?:\\d{7})$" + "regex": "(?:264|[58]\\d\\d|900)\\d{7}" }, "AQ": { "dial_code": "+672", @@ -48,107 +48,107 @@ "AG": { "dial_code": "+1", "format": "xxx-xxxx", - "regex": "^(?:\\+1-268)?(?:\\d{7})$" + "regex": "(?:268|[58]\\d\\d|900)\\d{7}" }, "AR": { "dial_code": "+54", "format": "xxxx-xxxx", - "regex": "^(?:(?:\\+|0{0,2})54)?(?:11|[2368]\\d)(?:(?=\\d{0,2}15)\\d{2})??\\d{8}$" + "regex": "(?:11|[89]\\d\\d)\\d{8}|[2368]\\d{9}" }, "AM": { "dial_code": "+374", "format": "xx xx xx xx", - "regex": "^(?:\\+?374)?(?:[0-9]{8}|[0-9]{6}[0-9]{2})$" + "regex": "(?:[1-489]\\d|55|60|77)\\d{6}" }, "AW": { "dial_code": "+297", "format": "xxx-xxxx", - "regex": "^(?:(?:\\+297)?(?!0)\\d{7})$" + "regex": "(?:[25-79]\\d\\d|800)\\d{4}" }, "AU": { "dial_code": "+61", "format": "xxx xxx xxx", - "regex": "^(?:\\+?61|0)4\\d{8}$" + "regex": "1(?:[0-79]\\d{7}(?:\\d(?:\\d{2})?)?|8[0-24-9]\\d{7})|[2-478]\\d{8}|1\\d{4,7}" }, "AT": { "dial_code": "+43", "format": "xxx xxxxxxxx", - "regex": "^(?:\\+43)?(?:\\d{4,13})$" + "regex": "1\\d{3,12}|2\\d{6,12}|43(?:(?:0\\d|5[02-9])\\d{3,9}|2\\d{4,5}|[3467]\\d{4}|8\\d{4,6}|9\\d{4,7})|5\\d{4,12}|8\\d{7,12}|9\\d{8,12}|(?:[367]\\d|4[0-24-9])\\d{4,11}" }, "AZ": { "dial_code": "+994", "format": "xx xxx xx xx", - "regex": "^(?:\\+994)?(?:\\d{9})$" + "regex": "365\\d{6}|(?:[124579]\\d|60|88)\\d{7}" }, "BS": { "dial_code": "+1", "format": "xxx-xxxx", - "regex": "^(?:(?:\\+1)?242)?(?:\\d{3})?\\d{7}$" + "regex": "(?:242|[58]\\d\\d|900)\\d{7}" }, "BH": { "dial_code": "+973", "format": "xxxx xxxx", - "regex": "^(?:\\+?973)?[356]\\d{7}$" + "regex": "[136-9]\\d{7}" }, "BD": { "dial_code": "+880", "format": "xxxx-xxxxxx", - "regex": "^(?:\\+?880|0)1[13456789]\\d{8}$" + "regex": "[1-469]\\d{9}|8[0-79]\\d{7,8}|[2-79]\\d{8}|[2-9]\\d{7}|[3-9]\\d{6}|[57-9]\\d{5}" }, "BB": { "dial_code": "+1", "format": "xxx-xxxx", - "regex": "^(?:(?:\\+1)?246)?(?:\\d{3})?\\d{7}$" + "regex": "(?:246|[58]\\d\\d|900)\\d{7}" }, "BY": { "dial_code": "+375", "format": "xx xxx-xx-xx", - "regex": "^(?:\\+375)?(?:\\d{9})$" + "regex": "(?:[12]\\d|33|44|902)\\d{7}|8(?:0[0-79]\\d{5,7}|[1-7]\\d{9})|8(?:1[0-489]|[5-79]\\d)\\d{7}|8[1-79]\\d{6,7}|8[0-79]\\d{5}|8\\d{5}" }, "BE": { "dial_code": "+32", "format": "xxx xx xx xx", - "regex": "^(?:\\+32)?(?:\\d{8,9})$" + "regex": "4\\d{8}|[1-9]\\d{7}" }, "BZ": { "dial_code": "+501", "format": "xxx-xxxx", - "regex": "^(?:(?:\\+501)?\\s?)?[622]\\d{4}$" + "regex": "(?:0800\\d|[2-8])\\d{6}" }, "BJ": { "dial_code": "+229", "format": "xx xx xx xx", - "regex": "^(?:\\+229)?(?:\\d{8})$" + "regex": "[24-689]\\d{7}" }, "BM": { "dial_code": "+1", "format": "xxx-xxxx", - "regex": "^(?:(?:\\+1)?441)?(?:\\d{2})?\\d{7}$" + "regex": "(?:441|[58]\\d\\d|900)\\d{7}" }, "BT": { "dial_code": "+975", "format": "x xxx xxx", - "regex": "^(?:\\+975)?(?:\\d{8})$" + "regex": "[17]\\d{7}|[2-8]\\d{6}" }, "BO": { "dial_code": "+591", "format": "xxxx-xxxx", - "regex": "^(?:(?:\\+|0{0,2})591)?(?:(?:2|3|7|6)\\d{7})$" + "regex": "(?:[2-467]\\d\\d|8001)\\d{5}" }, "BQ": { "dial_code": "+599", "format": "xxx xxxx", - "regex": "^(?:\\+599)?(?:\\d{7})$" + "regex": "(?:[34]1|7\\d)\\d{5}" }, "BA": { "dial_code": "+387", "format": "xx xxx-xxxx", - "regex": "^(?:\\+387)?(?:\\d{6,8})$" + "regex": "6\\d{8}|(?:[35689]\\d|49|70)\\d{6}" }, "BW": { "dial_code": "+267", "format": "xx xxxx xxxx", - "regex": "^(?:(?:\\+267)?\\s?)?[74]\\d{7}$" + "regex": "(?:0800|(?:[37]|800)\\d)\\d{6}|(?:[2-6]\\d|90)\\d{5}" }, "BV": { "dial_code": "+47", @@ -158,242 +158,242 @@ "BR": { "dial_code": "+55", "format": "xx xxxx-xxxx", - "regex": "^(?:\\+55)?(?:\\d{10,11})$" + "regex": "(?:[1-46-9]\\d\\d|5(?:[0-46-9]\\d|5[0-46-9]))\\d{8}|[1-9]\\d{9}|[3589]\\d{8}|[34]\\d{7}" }, "IO": { "dial_code": "+246", "format": "xxx xxxx", - "regex": "^\\+246\\d{7}$" + "regex": "3\\d{6}" }, "BN": { "dial_code": "+673", "format": "xxxx-xxxx", - "regex": "^(?:\\+?673)?(?:\\d{3})?\\d{4}$" + "regex": "[2-578]\\d{6}" }, "BG": { "dial_code": "+359", "format": "xx xxx xxxx", - "regex": "^(?:\\+359)?(?:\\d{7,9})$" + "regex": "00800\\d{7}|[2-7]\\d{6,7}|[89]\\d{6,8}|2\\d{5}" }, "BF": { "dial_code": "+226", "format": "xx xx xx xx", - "regex": "^(?:\\+226)?(?:\\d{8})$" + "regex": "[025-7]\\d{7}" }, "BI": { "dial_code": "+257", "format": "xx xx xx xx", - "regex": "^(?:\\+257)?(?:\\d{8})$" + "regex": "(?:[267]\\d|31)\\d{6}" }, "CV": { "dial_code": "+238", "format": "xxx xxxx", - "regex": "^(?:\\+238)?(?:\\d{7})$" + "regex": "(?:[2-59]\\d\\d|800)\\d{4}" }, "KH": { "dial_code": "+855", "format": "xxx-xxx-xxx", - "regex": "^(?:(?:\\+855)|(?:0))(?:\\s?[1-9]\\d{7,8})$" + "regex": "1\\d{9}|[1-9]\\d{7,8}" }, "CM": { "dial_code": "+237", "format": "xx xx xx xx", - "regex": "^(?:\\+237)?(?:\\d{9})$" + "regex": "[26]\\d{8}|88\\d{6,7}" }, "CA": { "dial_code": "+1", "format": "xxx-xxx-xxxx", - "regex": "^(\\+\\d{1,2}\\s?)?([2-9]{1}\\d{2}[2-9]{1}\\d{6})$" + "regex": "(?:[2-8]\\d|90)\\d{8}|3\\d{6}" }, "KY": { "dial_code": "+1", "format": "xxx-xxxx", - "regex": "^(?:\\+?1\\s?(345))\\d{6}$" + "regex": "(?:345|[58]\\d\\d|900)\\d{7}" }, "CF": { "dial_code": "+236", "format": "xx xx xx xx", - "regex": "^(?:\\+236)?(?:\\d{8})$" + "regex": "(?:[27]\\d{3}|8776)\\d{4}" }, "TD": { "dial_code": "+235", "format": "xx xx xx xx", - "regex": "^(?:\\+235)?\\d{8}$" + "regex": "(?:22|[69]\\d|77)\\d{6}" }, "CL": { "dial_code": "+56", "format": "x xxxx xxxx", - "regex": "^(?:\\+56)?(?:\\d{9})$" + "regex": "12300\\d{6}|6\\d{9,10}|[2-9]\\d{8}" }, "CN": { "dial_code": "+86", "format": "xxxx-xxxxxxx", - "regex": "^(?:(?:\\+|00)86)?1\\d{10}$" + "regex": "1[127]\\d{8,9}|2\\d{9}(?:\\d{2})?|[12]\\d{6,7}|86\\d{6}|(?:1[03-689]\\d|6)\\d{7,9}|(?:[3-579]\\d|8[0-57-9])\\d{6,9}" }, "CX": { "dial_code": "+61", "format": "xxx xxxx xxxx", - "regex": "^(?:\\+61)?(?:\\d{8,9})$" + "regex": "1(?:[0-79]\\d{8}(?:\\d{2})?|8[0-24-9]\\d{7})|[148]\\d{8}|1\\d{5,7}" }, "CC": { "dial_code": "+61", "format": "xxx xxxx xxxx", - "regex": "^(?:\\+61)?(?:\\d{8,9})$" + "regex": "1(?:[0-79]\\d{8}(?:\\d{2})?|8[0-24-9]\\d{7})|[148]\\d{8}|1\\d{5,7}" }, "CO": { "dial_code": "+57", "format": "xxxx-xxxxxxx", - "regex": "^(?:(?:\\+57|0057)?)?[1-8]{1}\\d{6,7}$" + "regex": "(?:60\\d\\d|9101)\\d{6}|(?:1\\d|3)\\d{9}" }, "KM": { "dial_code": "+269", "format": "xx xx xx xx", - "regex": "^(?:\\+269)?\\d{7}$" + "regex": "[3478]\\d{6}" }, "CD": { "dial_code": "+243", "format": "xx xxx xxxx", - "regex": "^(?:\\+243)?(?:\\d{9})$" + "regex": "[189]\\d{8}|[1-68]\\d{6}" }, "CG": { "dial_code": "+242", "format": "xx xx xx xx", - "regex": "^(?:\\+242)?(?:\\d{9})$" + "regex": "222\\d{6}|(?:0\\d|80)\\d{7}" }, "CK": { "dial_code": "+682", "format": "xx xxx", - "regex": "^(?:\\+682)?(?:\\d{5})$" + "regex": "[2-578]\\d{4}" }, "CR": { "dial_code": "+506", "format": "xxxx-xxxx", - "regex": "^(?:(?:\\+506)?\\s*|0)?[1-9]\\d{7}$" + "regex": "(?:8\\d|90)\\d{8}|(?:[24-8]\\d{3}|3005)\\d{4}" }, "CI": { "dial_code": "+225", "format": "xx xx xx xx", - "regex": "^(?:\\+225)?(?:\\d{8})$" + "regex": "[02]\\d{9}" }, "HR": { "dial_code": "+385", "format": "xxx xxx xxxx", - "regex": "^(?:\\+?385)?\\d{8,9}$" + "regex": "(?:[24-69]\\d|3[0-79])\\d{7}|80\\d{5,7}|[1-79]\\d{7}|6\\d{5,6}" }, "CU": { "dial_code": "+53", "format": "xxxx-xxxx", - "regex": "^(?:\\+?53)?(?:[5-8]\\d{7})$" + "regex": "(?:[2-7]|8\\d\\d)\\d{7}|[2-47]\\d{6}|[34]\\d{5}" }, "CW": { "dial_code": "+599", "format": "xxx xxxx", - "regex": "^(?:\\+599)?(?:\\d{7})$" + "regex": "(?:[34]1|60|(?:7|9\\d)\\d)\\d{5}" }, "CY": { "dial_code": "+357", "format": "xx xxxxxx", - "regex": "^(?:\\+357)?(?:\\d{8})$" + "regex": "(?:[279]\\d|[58]0)\\d{6}" }, "CZ": { "dial_code": "+420", "format": "xxx xxx xxx", - "regex": "^(?:\\+?420)?(?:\\d{9})$" + "regex": "(?:[2-578]\\d|60)\\d{7}|9\\d{8,11}" }, "DK": { "dial_code": "+45", "format": "xx xx xx xx", - "regex": "^(?:\\+?45)?(?:\\d{8})$" + "regex": "[2-9]\\d{7}" }, "DJ": { "dial_code": "+253", "format": "xx xx xx xx", - "regex": "^(?:\\+253)?(?:\\d{6})$" + "regex": "(?:2\\d|77)\\d{6}" }, "DM": { "dial_code": "+1", "format": "xxx-xxxx", - "regex": "^(?:\\+1-767)?(?:\\d{7})$" + "regex": "(?:[58]\\d\\d|767|900)\\d{7}" }, "DO": { "dial_code": "+1", "format": "xxx-xxxxxxx", - "regex": "^(?:(?:\\+1)?809|1-8(?:00|88|89))(?:\\d{7})$" + "regex": "(?:[58]\\d\\d|900)\\d{7}" }, "EC": { "dial_code": "+593", "format": "xx xxx xxxx", - "regex": "^(?:\\+593)?(?:\\d{8,9})$" + "regex": "1\\d{9,10}|(?:[2-7]|9\\d)\\d{7}" }, "EG": { "dial_code": "+20", "format": "xx xxx xxxx", - "regex": "^(?:(?:\\+20|20)?(\\d{10}))$" + "regex": "[189]\\d{8,9}|[24-6]\\d{8}|[135]\\d{7}" }, "SV": { "dial_code": "+503", "format": "xxxx-xxxx", - "regex": "^(?:(?:\\+?503)|(?:0))(?:\\d{8})$" + "regex": "[267]\\d{7}|(?:80\\d|900)\\d{4}(?:\\d{4})?" }, "GQ": { "dial_code": "+240", "format": "xx xxx xxxx", - "regex": "^(?:\\+240)?\\d{9}$" + "regex": "222\\d{6}|(?:3\\d|55|[89]0)\\d{7}" }, "ER": { "dial_code": "+291", "format": "x xxx xxxx", - "regex": "^(?:\\+291)?(?:\\d{6,7})$" + "regex": "[178]\\d{6}" }, "EE": { "dial_code": "+372", "format": "xxx xxxx", - "regex": "^(?:\\+372)?(?:\\d{7,8})$" + "regex": "8\\d{9}|[4578]\\d{7}|(?:[3-8]\\d|90)\\d{5}" }, "SZ": { "dial_code": "+268", "format": "xxx xx xxxx", - "regex": "^(?:\\+?268)?\\d{7,8}$" + "regex": "0800\\d{4}|(?:[237]\\d|900)\\d{6}" }, "ET": { "dial_code": "+251", "format": "xx xxx xxxx", - "regex": "^(?:\\+?251)?[1-59]\\d{8}$" + "regex": "(?:11|[2-579]\\d)\\d{7}" }, "FK": { "dial_code": "+500", "format": "xxxxx", - "regex": "^(?:\\+500)?(?:\\d{5})$" + "regex": "[2-7]\\d{4}" }, "FO": { "dial_code": "+298", "format": "xxx xxx", - "regex": "^(?:\\+298)?(?:\\d{6})$" + "regex": "[2-9]\\d{5}" }, "FJ": { "dial_code": "+679", "format": "xxxx xxxx", - "regex": "^(?:(?:\\+?679)?\\s?\\d{3}\\s?\\d{4})?$" + "regex": "45\\d{5}|(?:0800\\d|[235-9])\\d{6}" }, "FI": { "dial_code": "+358", "format": "xx xxx xxxx", - "regex": "^(?:\\+358)?(?:\\d{5,12})$" + "regex": "[1-35689]\\d{4}|7\\d{10,11}|(?:[124-7]\\d|3[0-46-9])\\d{8}|[1-9]\\d{5,8}" }, "FR": { "dial_code": "+33", "format": "xx xx xx xx xx", - "regex": "^(?:\\+33)?(?:\\d{9})$" + "regex": "[1-9]\\d{8}" }, "GF": { "dial_code": "+594", "format": "xxx xx xx xx", - "regex": "^(?:\\+594)?\\d{9}$" + "regex": "[56]94\\d{6}|(?:80|9\\d)\\d{7}" }, "PF": { "dial_code": "+689", "format": "xx xx xx xx", - "regex": "^(?:\\+689)?\\d{6}$" + "regex": "4\\d{5}(?:\\d{2})?|8\\d{7,8}" }, "TF": { "dial_code": "+1", @@ -403,87 +403,87 @@ "GA": { "dial_code": "+241", "format": "xx xx xx xx", - "regex": "^(?:\\+241)?(?:\\d{6,7})$" + "regex": "(?:[067]\\d|11)\\d{6}|[2-7]\\d{6}" }, "GM": { "dial_code": "+220", "format": "xxxx-xxxx", - "regex": "^(?:\\+220)?\\d{5,7}$" + "regex": "[2-9]\\d{6}" }, "GE": { "dial_code": "+995", "format": "xxx xxx xxx", - "regex": "^(?:\\+995)?(?:\\d{8,9})$" + "regex": "(?:[3-57]\\d\\d|800)\\d{6}" }, "DE": { "dial_code": "+49", "format": "xxx xxxxxxxx", - "regex": "^(?:\\+49)?(?:\\d{6,11})$" + "regex": "[2579]\\d{5,14}|49(?:[34]0|69|8\\d)\\d\\d?|49(?:37|49|60|7[089]|9\\d)\\d{1,3}|49(?:2[024-9]|3[2-689]|7[1-7])\\d{1,8}|(?:1|[368]\\d|4[0-8])\\d{3,13}|49(?:[015]\\d|2[13]|31|[46][1-8])\\d{1,9}" }, "GH": { "dial_code": "+233", "format": "xxx xxx xxxx", - "regex": "^(?:(?:\\+233)|0)?(?:\\d{9})$" + "regex": "(?:[235]\\d{3}|800)\\d{5}" }, "GI": { "dial_code": "+350", "format": "xxxx xxxx", - "regex": "^(?:\\+350)?\\d{5}$" + "regex": "(?:[25]\\d|60)\\d{6}" }, "GR": { "dial_code": "+30", "format": "xx xxx xxxx", - "regex": "^(?:\\+30)?\\d{10}$" + "regex": "5005000\\d{3}|8\\d{9,11}|(?:[269]\\d|70)\\d{8}" }, "GL": { "dial_code": "+299", "format": "xx xx xx", - "regex": "^(?:\\+299)?\\d{6}$" + "regex": "(?:19|[2-689]\\d|70)\\d{4}" }, "GD": { "dial_code": "+1", "format": "xxx-xxxx", - "regex": "^(?:\\+1-473)?(?:\\d{7})$" + "regex": "(?:473|[58]\\d\\d|900)\\d{7}" }, "GP": { "dial_code": "+590", "format": "xxx xx xx xx", - "regex": "^(?:\\+590)?\\d{9}$" + "regex": "590\\d{6}|(?:69|80|9\\d)\\d{7}" }, "GU": { "dial_code": "+1", "format": "xxx-xxxx", - "regex": "^(?:\\+1-671)?\\d{7}$" + "regex": "(?:[58]\\d\\d|671|900)\\d{7}" }, "GT": { "dial_code": "+502", "format": "xxxx-xxxx", - "regex": "^(?:\\+502)?[2468]\\d{7,8}$" + "regex": "80\\d{6}|(?:1\\d{3}|[2-7])\\d{7}" }, "GG": { "dial_code": "+44", "format": "xxxx xxxx", - "regex": "^(?:\\+44-1481)?\\d{6}$" + "regex": "(?:1481|[357-9]\\d{3})\\d{6}|8\\d{6}(?:\\d{2})?" }, "GN": { "dial_code": "+224", "format": "xx xx xx xx", - "regex": "^(?:\\+224)?\\d{8}$" + "regex": "722\\d{6}|(?:3|6\\d)\\d{7}" }, "GW": { "dial_code": "+245", "format": "xx xx xx xx", - "regex": "^(?:\\+245)?\\d{7}$" + "regex": "[49]\\d{8}|4\\d{6}" }, "GY": { "dial_code": "+592", "format": "xxx-xxxx", - "regex": "^(?:(?:\\+592)?(?:(?:\\s)?[2-9])(?:(?:\\s)?\\d))?(?:(?:\\s)?\\d{4})$" + "regex": "(?:[2-8]\\d{3}|9008)\\d{3}" }, "HT": { "dial_code": "+509", "format": "xxx-xxxx", - "regex": "^(?:\\+?509)?\\d{8}$" + "regex": "(?:[2-489]\\d|55)\\d{6}" }, "HM": { "dial_code": "+00672", @@ -493,392 +493,392 @@ "VA": { "dial_code": "+39", "format": "xxx xxxx xxxx", - "regex": "^(?:\\+379)?\\d{8,12}$" + "regex": "0\\d{5,10}|3[0-8]\\d{7,10}|55\\d{8}|8\\d{5}(?:\\d{2,4})?|(?:1\\d|39)\\d{7,8}" }, "HN": { "dial_code": "+504", "format": "xxxx-xxxx", - "regex": "^(?:\\+504)?[89]\\d{7}$" + "regex": "8\\d{10}|[237-9]\\d{7}" }, "HK": { "dial_code": "+852", "format": "xxxx xxxx", - "regex": "^(?:\\+852\\s?)?[456789]\\d{3}\\s?\\d{4}$" + "regex": "8[0-46-9]\\d{6,7}|9\\d{4,7}|(?:[2-7]|9\\d{3})\\d{7}" }, "HU": { "dial_code": "+36", "format": "xxx xxx xxxx", - "regex": "^(?:(?:\\+36))(\\s?\\d{2}\\s?\\d{3}\\s?\\d{4})$" + "regex": "[235-7]\\d{8}|[1-9]\\d{7}" }, "IS": { "dial_code": "+354", "format": "xxx xxxx", - "regex": "^(?:\\+354)?\\d{7}$" + "regex": "(?:38\\d|[4-9])\\d{6}" }, "IN": { "dial_code": "+91", "format": "xxxx xxxxxx", - "regex": "^(?:(?:\\+|0{0,2})91\\s*[-]?\\s*|[0]?)?[6789]\\d{9}$" + "regex": "(?:000800|[2-9]\\d\\d)\\d{7}|1\\d{7,12}" }, "ID": { "dial_code": "+62", "format": "xxxx-xxxx-xxxx", - "regex": "^(?:\\+?62|0[1-9])[\\s-]?\\d{2,4}[\\s-]?\\d{3,4}[\\s-]?\\d{3,4}$" + "regex": "(?:(?:00[1-9]|8\\d)\\d{4}|[1-36])\\d{6}|00\\d{10}|[1-9]\\d{8,10}|[2-9]\\d{7}" }, "IR": { "dial_code": "+98", "format": "xx xxxx xxxx", - "regex": "^(?:\\+98)?\\d{10}$" + "regex": "[1-9]\\d{9}|(?:[1-8]\\d\\d|9)\\d{3,4}" }, "IQ": { "dial_code": "+964", "format": "xx xxx xxxx", - "regex": "^(?:\\+964)?\\d{10}$" + "regex": "(?:1|7\\d\\d)\\d{7}|[2-6]\\d{7,8}" }, "IE": { "dial_code": "+353", "format": "xx xxx xxxx", - "regex": "^(?:\\+353)?\\d{7,10}$" + "regex": "(?:1\\d|[2569])\\d{6,8}|4\\d{6,9}|7\\d{8}|8\\d{8,9}" }, "IM": { "dial_code": "+44", "format": "xxxx xxxx", - "regex": "^(?:\\+44-1624)?\\d{6}$" + "regex": "1624\\d{6}|(?:[3578]\\d|90)\\d{8}" }, "IL": { "dial_code": "+972", "format": "xxxx-xxx-xxx", - "regex": "^(?:(?:\\+972|0)(?:-)?)[23489]\\d{7}$" + "regex": "1\\d{6}(?:\\d{3,5})?|[57]\\d{8}|[1-489]\\d{7}" }, "IT": { "dial_code": "+39", "format": "xxx xxxx xxxx", - "regex": "^(?:\\+39)?\\d{9,10}$" + "regex": "0\\d{5,10}|1\\d{8,10}|3(?:[0-8]\\d{7,10}|9\\d{7,8})|(?:43|55|70)\\d{8}|8\\d{5}(?:\\d{2,4})?" }, "JM": { "dial_code": "+1", "format": "xxx-xxxx", - "regex": "^(?:(?:\\+1876))\\d{7,10}$" + "regex": "(?:[58]\\d\\d|658|900)\\d{7}" }, "JP": { "dial_code": "+81", "format": "xx xxxx xxxx", - "regex": "^(?:\\+81)?\\d{10}$" + "regex": "00[1-9]\\d{6,14}|[257-9]\\d{9}|(?:00|[1-9]\\d\\d)\\d{6}" }, "JE": { "dial_code": "+44", "format": "xxxx xxxx", - "regex": "^(?:\\+44-1534)?\\d{6}$" + "regex": "1534\\d{6}|(?:[3578]\\d|90)\\d{8}" }, "JO": { "dial_code": "+962", "format": "xx xxxx xxxx", - "regex": "^(?:\\+962)?\\d{9}$" + "regex": "(?:(?:[2689]|7\\d)\\d|32|53)\\d{6}" }, "KZ": { "dial_code": "+7", "format": "xxx-xxx-xx-xx", - "regex": "^(?:\\+?7|8)?7\\d{9}$" + "regex": "(?:33622|8\\d{8})\\d{5}|[78]\\d{9}" }, "KE": { "dial_code": "+254", "format": "xxx xxxxxx", - "regex": "^(?:(?:\\+254)|(?:0))(?:\\d{6,7})$" + "regex": "(?:[17]\\d\\d|900)\\d{6}|(?:2|80)0\\d{6,7}|[4-6]\\d{6,8}" }, "KI": { "dial_code": "+686", "format": "xx xxx", - "regex": "^(?:\\+686)?\\d{5}$" + "regex": "(?:[37]\\d|6[0-79])\\d{6}|(?:[2-48]\\d|50)\\d{3}" }, "KP": { "dial_code": "+850", "format": "xx xxx xxxx", - "regex": "^\\+850\\d{6,9}$" + "regex": "85\\d{6}|(?:19\\d|[2-7])\\d{7}" }, "KR": { "dial_code": "+82", "format": "xx xxxx xxxx", - "regex": "^(?:\\+82)?\\d{8,11}$" + "regex": "00[1-9]\\d{8,11}|(?:[12]|5\\d{3})\\d{7}|[13-6]\\d{9}|(?:[1-6]\\d|80)\\d{7}|[3-6]\\d{4,5}|(?:00|7)0\\d{8}" }, "KW": { "dial_code": "+965", "format": "xxx xx xxxx", - "regex": "^(?:\\+?965)[569]\\d{7}$" + "regex": "18\\d{5}|(?:[2569]\\d|41)\\d{6}" }, "KG": { "dial_code": "+996", "format": "xxx-xx-xx-xx", - "regex": "^(?:\\+996)?\\s?\\d{9}$" + "regex": "8\\d{9}|[235-9]\\d{8}" }, "LA": { "dial_code": "+856", "format": "xxx xx xxxx", - "regex": "^(?:(?:\\+?856)|0)(20\\d{7,9})$" + "regex": "[23]\\d{9}|3\\d{8}|(?:[235-8]\\d|41)\\d{6}" }, "LV": { "dial_code": "+371", "format": "xxxx xxxx", - "regex": "^(?:(?:\\+371)?2\\d{7})$" + "regex": "(?:[268]\\d|90)\\d{6}" }, "LB": { "dial_code": "+961", "format": "xx xxx xxx", - "regex": "^(?:\\+961)?\\d{8}$" + "regex": "[27-9]\\d{7}|[13-9]\\d{6}" }, "LS": { "dial_code": "+266", "format": "xxx xx xxxx", - "regex": "^(?:(?:\\+?266)|0)?[56]\\d{7}$" + "regex": "(?:[256]\\d\\d|800)\\d{5}" }, "LR": { "dial_code": "+231", "format": "xxx-xxx-xxxx", - "regex": "^(?:\\+231)[ -\\d]{4}[ -\\d]{4}$" + "regex": "(?:[245]\\d|33|77|88)\\d{7}|(?:2\\d|[4-6])\\d{6}" }, "LY": { "dial_code": "+218", "format": "xx xxxxx xxxx", - "regex": "^(?:\\+218)?\\d{9}$" + "regex": "[2-9]\\d{8}" }, "LI": { "dial_code": "+423", "format": "xxx xx xx", - "regex": "^(?:\\+423)?\\d{7}$" + "regex": "[68]\\d{8}|(?:[2378]\\d|90)\\d{5}" }, "LT": { "dial_code": "+370", "format": "xxx xxxxx", - "regex": "^(?:(?:\\+370)|8)\\d{8}$" + "regex": "(?:[3469]\\d|52|[78]0)\\d{6}" }, "LU": { "dial_code": "+352", "format": "xxx xx xxx", - "regex": "^(?:(?:\\+352)?(6|2(6|7|8|9))\\d{6})$" + "regex": "35[013-9]\\d{4,8}|6\\d{8}|35\\d{2,4}|(?:[2457-9]\\d|3[0-46-9])\\d{2,9}" }, "MO": { "dial_code": "+853", "format": "xxxx xxxx", - "regex": "^(?:(?:\\+?853)|[0-9])?\\d{8}$" + "regex": "0800\\d{3}|(?:28|[68]\\d)\\d{6}" }, "MG": { "dial_code": "+261", "format": "xx xx xx xx xx", - "regex": "^(?:(?:\\+261)?3[234568]\\d{7})$" + "regex": "[23]\\d{8}" }, "MW": { "dial_code": "+265", "format": "xx xxxx xxxx", - "regex": "^(?:\\+265)[1-9]\\d{6}$" + "regex": "(?:[1289]\\d|31|77)\\d{7}|1\\d{6}" }, "MY": { "dial_code": "+60", "format": "xx xxxxx xx", - "regex": "^(\\+?6?0)?(\\d{1,3})[-. ]?(\\d{7,8})$" + "regex": "1\\d{8,9}|(?:3\\d|[4-9])\\d{7}" }, "MV": { "dial_code": "+960", "format": "xxxxxx", - "regex": "^(?:(?:\\+?960)|0)?\\d{7}$" + "regex": "(?:800|9[0-57-9]\\d)\\d{7}|[34679]\\d{6}" }, "ML": { "dial_code": "+223", "format": "xx xx xx xx", - "regex": "^(?:\\+223)?\\d{8}$" + "regex": "[24-9]\\d{7}" }, "MT": { "dial_code": "+356", "format": "xx xx xx xx", - "regex": "^(?:\\+356)?\\d{8}$" + "regex": "3550\\d{4}|(?:[2579]\\d\\d|800)\\d{5}" }, "MH": { "dial_code": "+692", "format": "xxx xxxx", - "regex": "^(?:\\+692)?\\d{7}$" + "regex": "329\\d{4}|(?:[256]\\d|45)\\d{5}" }, "MQ": { "dial_code": "+596", "format": "xxx xx xx xx", - "regex": "^(?:\\+596)?\\d{9}$" + "regex": "596\\d{6}|(?:69|80|9\\d)\\d{7}" }, "MR": { "dial_code": "+222", "format": "xx xx xx xx", - "regex": "^(?:\\+222)?\\d{8}$" + "regex": "(?:[2-4]\\d\\d|800)\\d{5}" }, "MU": { "dial_code": "+230", "format": "xx xxxx xxxx", - "regex": "^(?:\\+230|0)?\\d{8}$" + "regex": "(?:[57]|8\\d\\d)\\d{7}|[2-468]\\d{6}" }, "YT": { "dial_code": "+262", "format": "xxx xx xx xx", - "regex": "^(?:\\+262)?\\d{9}$" + "regex": "(?:80|9\\d)\\d{7}|(?:26|63)9\\d{6}" }, "MX": { "dial_code": "+52", "format": "xxx-xxx-xxxx", - "regex": "^(?:(?:\\+?52)?\\s?(?:1|01)?\\s?)?(?:\\d{3}\\s?\\d{3}\\s?\\d{4})$" + "regex": "[2-9]\\d{9}" }, "FM": { "dial_code": "+691", "format": "xxx xxxx", - "regex": "^(?:\\+691)?(?:\\d{7})$" + "regex": "(?:[39]\\d\\d|820)\\d{4}" }, "MD": { "dial_code": "+373", "format": "xx xxxxxx", - "regex": "^(?:(?:\\+373)|(?:0))(?:\\d{7,8})$" + "regex": "(?:[235-7]\\d|[89]0)\\d{6}" }, "MC": { "dial_code": "+377", "format": "xx xx xx xx", - "regex": "^(?:\\+377)?\\d{8,9}$" + "regex": "(?:[3489]|6\\d)\\d{7}" }, "MN": { "dial_code": "+976", "format": "xxx-xx-xxxx", - "regex": "^(?:\\+976|0)\\d{8}$" + "regex": "[12]\\d{7,9}|[5-9]\\d{7}" }, "ME": { "dial_code": "+382", "format": "xx xxxxxx", - "regex": "^(?:(?:\\+382)?[67]\\d{7,20})$" + "regex": "(?:20|[3-79]\\d)\\d{6}|80\\d{6,7}" }, "MS": { "dial_code": "+1", "format": "xxx-xxxx", - "regex": "^(?:\\+1-664)?\\d{7}$" + "regex": "(?:[58]\\d\\d|664|900)\\d{7}" }, "MA": { "dial_code": "+212", "format": "xxxx-xxxxxx", - "regex": "^(?:(?:\\+?212(\\s*[-|\\s*]?\\d{1,9})?)|(?:0))(?:\\d{9})$" + "regex": "[5-8]\\d{8}" }, "MZ": { "dial_code": "+258", "format": "xx xxxxxxx", - "regex": "^(?:(?:\\+258)|(?:258))?8[234567]\\d{7,8}$" + "regex": "(?:2|8\\d)\\d{7}" }, "MM": { "dial_code": "+95", "format": "xx xxxxxx", - "regex": "^(?:(?:\\+?95)|0)?[1-9]\\d{9}$" + "regex": "1\\d{5,7}|95\\d{6}|(?:[4-7]|9[0-46-9])\\d{6,8}|(?:2|8\\d)\\d{5,8}" }, "NA": { "dial_code": "+264", "format": "xx xxxx xxxx", - "regex": "^(?:(?:\\+264)|0)?\\d{8}$" + "regex": "[68]\\d{7,8}" }, "NR": { "dial_code": "+674", "format": "xxx xxxx", - "regex": "^(?:\\+674)?\\d{7}$" + "regex": "(?:444|(?:55|8\\d)\\d|666)\\d{4}" }, "NP": { "dial_code": "+977", "format": "xxxx-xxxxxxx", - "regex": "^(?:(?:\\+977))?(\\d{9,10})$" + "regex": "(?:1\\d|9)\\d{9}|[1-9]\\d{7}" }, "NL": { "dial_code": "+31", "format": "xxx-xxxxxxx", - "regex": "^(?:(?:\\+31)|0(6(?:\\d{8})|[1-9](?:(?:\\d{8})|(?:\\s\\d{3}\\s\\d{4}))|(?:\\d{8})))$" + "regex": "(?:[124-7]\\d\\d|3(?:[02-9]\\d|1[0-8]))\\d{6}|8\\d{6,9}|9\\d{6,10}|1\\d{4,5}" }, "NC": { "dial_code": "+687", "format": "xx xx xx", - "regex": "^(?:\\+687)?\\d{6}$" + "regex": "(?:050|[2-57-9]\\d\\d)\\d{3}" }, "NZ": { "dial_code": "+64", "format": "xxx-xxxxxxx", - "regex": "^(?:\\+?64|0)(\\d{2,5} \\d{4,8}|\\d{3,4} \\d{4})$" + "regex": "[1289]\\d{9}|50\\d{5}(?:\\d{2,3})?|[27-9]\\d{7,8}|(?:[34]\\d|6[0-35-9])\\d{6}|8\\d{4,6}" }, "NI": { "dial_code": "+505", "format": "xxxx-xxxx", - "regex": "^(?:(?:\\+505))?(?:\\d{8})$" + "regex": "(?:1800|[25-8]\\d{3})\\d{4}" }, "NE": { "dial_code": "+227", "format": "xx xx xx xx", - "regex": "^(?:\\+227)?\\d{8}$" + "regex": "[027-9]\\d{7}" }, "NG": { "dial_code": "+234", "format": "xxx xxx xxxx", - "regex": "^(?:(?:\\+234)|(?:0))(?:\\d{7,8})$" + "regex": "2[0-24-9]\\d{8}|[78]\\d{10,13}|[7-9]\\d{9}|[1-9]\\d{7}|[124-7]\\d{6}" }, "NU": { "dial_code": "+683", "format": "xxxx", - "regex": "^(?:\\+683)?\\d{4}$" + "regex": "(?:[4-7]|888\\d)\\d{3}" }, "NF": { "dial_code": "+672", "format": "x xxxx", - "regex": "^(?:\\+672)?\\d{6}$" + "regex": "[13]\\d{5}" }, "MK": { "dial_code": "+389", "format": "xx xx xx xx", - "regex": "^(?:\\+389|0)(?:(?:2[0-4]|[3-9])\\s?)?\\d{6}$" + "regex": "[2-578]\\d{7}" }, "MP": { "dial_code": "+1", "format": "xxx-xxxx", - "regex": "^(?:\\+1-670)?\\d{7}$" + "regex": "[58]\\d{9}|(?:67|90)0\\d{7}" }, "NO": { "dial_code": "+47", "format": "xxxx xxxx", - "regex": "^(?:(?:\\+?47)|\\d{2}|\\d{3})\\s?\\d{2}\\s?\\d{3}$" + "regex": "(?:0|[2-9]\\d{3})\\d{4}" }, "OM": { "dial_code": "+968", "format": "xxxx-xxxx", - "regex": "^(?:\\+?968)?(?:95|96|97|98)\\d{6}$" + "regex": "(?:1505|[279]\\d{3}|500)\\d{4}|800\\d{5,6}" }, "PK": { "dial_code": "+92", "format": "xxx-xxxxxxx", - "regex": "^(?:(?:\\+92)|0)?[345]\\d{9}$" + "regex": "122\\d{6}|[24-8]\\d{10,11}|9(?:[013-9]\\d{8,10}|2(?:[01]\\d\\d|2(?:[06-8]\\d|1[01]))\\d{7})|(?:[2-8]\\d{3}|92(?:[0-7]\\d|8[1-9]))\\d{6}|[24-9]\\d{8}|[89]\\d{7}" }, "PW": { "dial_code": "+680", "format": "xxx xxxx", - "regex": "^(?:\\+680)?\\d{7}$" + "regex": "(?:[24-8]\\d\\d|345|900)\\d{4}" }, "PS": { "dial_code": "+970", "format": "xxxx-xxxxxxx", - "regex": "^(?:(?:\\+970))(5[2349])\\d{7}$" + "regex": "[2489]2\\d{6}|(?:1\\d|5)\\d{8}" }, "PA": { "dial_code": "+507", "format": "xxx-xxxx", - "regex": "^(?:(?:\\+507)\\s?)?[46]\\d{6,7}$" + "regex": "(?:00800|8\\d{3})\\d{6}|[68]\\d{7}|[1-57-9]\\d{6}" }, "PG": { "dial_code": "+675", "format": "xxx-xxxxxx", - "regex": "^(?:\\+?675)?(?:[7-9]\\d{7})$" + "regex": "(?:180|[78]\\d{3})\\d{4}|(?:[2-589]\\d|64)\\d{5}" }, "PY": { "dial_code": "+595", "format": "xxx-xxxxxx", - "regex": "^(?:(?:\\+595|0)9[9876]\\d{7})$" + "regex": "59\\d{4,6}|9\\d{5,10}|(?:[2-46-8]\\d|5[0-8])\\d{4,7}" }, "PE": { "dial_code": "+51", "format": "xxx-xxx-xxx", - "regex": "^(?:(?:\\+51)|0)?(?:9\\d{8})$" + "regex": "(?:[14-8]|9\\d)\\d{7}" }, "PH": { "dial_code": "+63", "format": "xxx-xxxx", - "regex": "^(?:(?:\\+?63)|0)(?:\\d{10})$" + "regex": "(?:[2-7]|9\\d)\\d{8}|2\\d{5}|(?:1800|8)\\d{7,9}" }, "PN": { "dial_code": "+64", @@ -888,152 +888,152 @@ "PL": { "dial_code": "+48", "format": "xxx xxx xxx", - "regex": "^(?:(?:\\+48)?(?:\\s?\\d{3}\\s?\\d{3}\\s?\\d{3}|(?:\\d{2}\\s?){4}\\d{2}|\\d{3}-\\d{3}-\\d{3}))$" + "regex": "(?:6|8\\d\\d)\\d{7}|[1-9]\\d{6}(?:\\d{2})?|[26]\\d{5}" }, "PT": { "dial_code": "+351", "format": "xxx xxx xxx", - "regex": "^(?:(?:\\+351)?9(1\\d|2[1-9]|6[12345789]|7[12345789])\\d{7})$" + "regex": "1693\\d{5}|(?:[26-9]\\d|30)\\d{7}" }, "PR": { "dial_code": "+1", "format": "xxx-xxx-xxxx", - "regex": "^(?:(?:\\+1)?787|939)\\d{7}$" + "regex": "(?:[589]\\d\\d|787)\\d{7}" }, "QA": { "dial_code": "+974", "format": "xxxx xxxx", - "regex": "^(?:\\+?974)?-?33\\d{5}$" + "regex": "800\\d{4}|(?:2|800)\\d{6}|(?:0080|[3-7])\\d{7}" }, "RE": { "dial_code": "+262", "format": "xxx xx xx xx", - "regex": "^(?:\\+262)?\\d{9}$" + "regex": "(?:26|[689]\\d)\\d{7}" }, "RO": { "dial_code": "+40", "format": "xxx xxx xxxx", - "regex": "^(?:(?:\\+40|0))(?:7[2-8]\\d{7}|21\\d{8})$" + "regex": "(?:[236-8]\\d|90)\\d{7}|[23]\\d{5}" }, "RU": { "dial_code": "+7", "format": "xxx xxx-xx-xx", - "regex": "^(?:\\+?7|8)?[ -]?\\(?9\\d{2}\\)?[ -]?\\d{3}[ -]?\\d{2}[ -]?\\d{2}$" + "regex": "8\\d{13}|[347-9]\\d{9}" }, "RW": { "dial_code": "+250", "format": "xxx xxxxxx", - "regex": "^(?:(?:\\+250)|(0))\\d{9}$" + "regex": "(?:06|[27]\\d\\d|[89]00)\\d{6}" }, "BL": { "dial_code": "+590", "format": "xxx xx xx xx", - "regex": "^(?:\\+590)?(?:\\d{9})$" + "regex": "590\\d{6}|(?:69|80|9\\d)\\d{7}" }, "SH": { "dial_code": "+290", "format": "xxxx", - "regex": "^\\+290\\d{4,5}$" + "regex": "(?:[256]\\d|8)\\d{3}" }, "KN": { "dial_code": "+1", "format": "xxx-xxxx", - "regex": "^(?:\\+1-869)?\\d{7}$" + "regex": "(?:[58]\\d\\d|900)\\d{7}" }, "LC": { "dial_code": "+1", "format": "xxx-xxxx", - "regex": "^(?:\\+1-758)?\\d{7}$" + "regex": "(?:[58]\\d\\d|758|900)\\d{7}" }, "MF": { "dial_code": "+590", "format": "xxx xx xx xx", - "regex": "^(?:\\+590)?\\d{9}$" + "regex": "590\\d{6}|(?:69|80|9\\d)\\d{7}" }, "PM": { "dial_code": "+508", "format": "xxx xxxx", - "regex": "^(?:\\+508)?\\d{6}$" + "regex": "[45]\\d{5}|(?:708|80\\d)\\d{6}" }, "VC": { "dial_code": "+1", "format": "xxx-xxxx", - "regex": "^(?:(?:\\+1)?784)?(?:\\d{3})?\\d{7}$" + "regex": "(?:[58]\\d\\d|784|900)\\d{7}" }, "WS": { "dial_code": "+685", "format": "xx xxxxx", - "regex": "^(?:\\+685)?\\d{5}$" + "regex": "(?:[2-6]|8\\d{5})\\d{4}|[78]\\d{6}|[68]\\d{5}" }, "SM": { "dial_code": "+378", "format": "xxxxx xxxxx", - "regex": "^(?:(?:\\+378)|(0549|6\\d{4}))\\d{5}$" + "regex": "(?:0549|[5-7]\\d)\\d{6}" }, "ST": { "dial_code": "+239", "format": "xx xxx xx", - "regex": "^(?:\\+239)?\\d{7}$" + "regex": "(?:22|9\\d)\\d{5}" }, "SA": { "dial_code": "+966", "format": "xxx-xxxxxxx", - "regex": "^(?:\\+?966)?\\s?1?[\\s-]?(?:[45]\\d{2}|5\\d{3})[\\s-]?\\d{4}$" + "regex": "92\\d{7}|(?:[15]|8\\d)\\d{8}" }, "SN": { "dial_code": "+221", "format": "xx xxx xx xx", - "regex": "^(?:(?:\\+221)|0)?[3679]\\d{7}$" + "regex": "(?:[378]\\d|93)\\d{7}" }, "RS": { "dial_code": "+381", "format": "xxx xxxxx", - "regex": "^(?:(?:\\+381)|0)([0-6]|[7][012345])[0-9]{5,10}$" + "regex": "38[02-9]\\d{6,9}|6\\d{7,9}|90\\d{4,8}|38\\d{5,6}|(?:7\\d\\d|800)\\d{3,9}|(?:[12]\\d|3[0-79])\\d{5,10}" }, "SC": { "dial_code": "+248", "format": "xx xxxxx", - "regex": "^(?:(?:\\+248)|\\d{4})\\d{5}$" + "regex": "800\\d{4}|(?:[249]\\d|64)\\d{5}" }, "SL": { "dial_code": "+232", "format": "xxx-xxxxxx", - "regex": "^(?:(?:\\+232)|(?:0))?\\d{9}$" + "regex": "(?:[237-9]\\d|66)\\d{6}" }, "SG": { "dial_code": "+65", "format": "xxxx xxxx", - "regex": "^(?:(?:\\+65)|(?:\\(\\+65\\))|(?:65))?\\d{4}\\d{4}$" + "regex": "(?:(?:1\\d|8)\\d\\d|7000)\\d{7}|[3689]\\d{7}" }, "SX": { "dial_code": "+1", "format": "xxx-xxxx", - "regex": "^(?:\\+1-721)?\\d{7}$" + "regex": "7215\\d{6}|(?:[58]\\d\\d|900)\\d{7}" }, "SK": { "dial_code": "+421", "format": "xxx xxx xxx", - "regex": "^(?:(?:\\+421))?(0|9[0-8])\\d{8}$" + "regex": "[2-689]\\d{8}|[2-59]\\d{6}|[2-5]\\d{5}" }, "SI": { "dial_code": "+386", "format": "xx xxxxxx", - "regex": "^(?:(?:\\+386)|0)?[1-59]\\d{7,8}$" + "regex": "[1-7]\\d{7}|8\\d{4,7}|90\\d{4,6}" }, "SB": { "dial_code": "+677", "format": "xxxxx", - "regex": "^(?:\\+677)?\\d{5}$" + "regex": "[6-9]\\d{6}|[1-6]\\d{4}" }, "SO": { "dial_code": "+252", "format": "xxx xxxxxxx", - "regex": "^(?:\\+252|0)?[567]\\d{7}$" + "regex": "[346-9]\\d{8}|[12679]\\d{7}|[1-5]\\d{6}|[1348]\\d{5}" }, "ZA": { "dial_code": "+27", "format": "xxx-xxx-xxxx", - "regex": "^(?:(?:\\+27)|0)(\\d{9})$" + "regex": "[1-79]\\d{8}|8\\d{4,9}" }, "GS": { "dial_code": "+500", @@ -1043,137 +1043,137 @@ "SS": { "dial_code": "+211", "format": "xxx xxxx xxx", - "regex": "^(?:\\+211|0)?[1-9]\\d{7,9}$" + "regex": "[19]\\d{8}" }, "ES": { "dial_code": "+34", "format": "xxx xxx xxx", - "regex": "^(?:\\+34)?(?:\\d{9})$" + "regex": "[5-9]\\d{8}" }, "LK": { "dial_code": "+94", "format": "xx xxx xxxx", - "regex": "^(?:(?:\\+94)|0)(?:\\d{9})$" + "regex": "[1-9]\\d{8}" }, "SD": { "dial_code": "+249", "format": "xx xxx xxxx", - "regex": "^(?:\\+249)?\\d{9}$" + "regex": "[19]\\d{8}" }, "SR": { "dial_code": "+597", "format": "xxx-xxxx", - "regex": "^(?:(?:\\+597))\\d{7}$" + "regex": "(?:[2-5]|68|[78]\\d)\\d{5}" }, "SJ": { "dial_code": "+47", "format": "xxx xx xxx", - "regex": "^\\+47\\d{8}$" + "regex": "0\\d{4}|(?:[489]\\d|79)\\d{6}" }, "SE": { "dial_code": "+46", "format": "xxx-xxx xx xx", - "regex": "^(?:\\+?46|0)\\s?[1-57-9](?:[0-9]\\s?){8}$" + "regex": "(?:[26]\\d\\d|9)\\d{9}|[1-9]\\d{8}|[1-689]\\d{7}|[1-4689]\\d{6}|2\\d{5}" }, "CH": { "dial_code": "+41", "format": "xxx xxx xxx", - "regex": "^(?:(?:\\+41|0)(?:\\s*\\(?0\\)?\\s*))?(?:\\d{2}\\s*)?\\d{3}\\s*\\d{2}\\s*\\d{2}$" + "regex": "8\\d{11}|[2-9]\\d{8}" }, "SY": { "dial_code": "+963", "format": "xx xxxx xxxx", - "regex": "^(?:\\+963)?\\d{9}$" + "regex": "[1-39]\\d{8}|[1-5]\\d{7}" }, "TW": { "dial_code": "+886", "format": "xxxx-xxxxxx", - "regex": "^(?:(?:\\+886)|0)?9\\d{8}$" + "regex": "[2-689]\\d{8}|7\\d{9,10}|[2-8]\\d{7}|2\\d{6}" }, "TJ": { "dial_code": "+992", "format": "xxx xx xx xx", - "regex": "^(?:(?:\\+992))(37|55|77)\\d{7}$" + "regex": "[0-57-9]\\d{8}" }, "TZ": { "dial_code": "+255", "format": "xxx xxx xxxx", - "regex": "^(?:(?:\\+?255)|0)?[67]\\d{8}$" + "regex": "(?:[25-8]\\d|41|90)\\d{7}" }, "TH": { "dial_code": "+66", "format": "xxx-xxxxxxx", - "regex": "^(?:(?:\\+66)|0)\\d{9}$" + "regex": "(?:001800|[2-57]|[689]\\d)\\d{7}|1\\d{7,9}" }, "TL": { "dial_code": "+670", "format": "xxx-xxxxxxx", - "regex": "^(?:(?:\\+670)\\s?)?[0-9]{3}\\s?[0-9]{3,4}$" + "regex": "7\\d{7}|(?:[2-47]\\d|[89]0)\\d{5}" }, "TG": { "dial_code": "+228", "format": "xx xx xx xx", - "regex": "^(?:(?:\\+228))\\d{8}$" + "regex": "[279]\\d{7}" }, "TK": { "dial_code": "+690", "format": "xxxx", - "regex": "^\\+690\\d{4}$" + "regex": "[2-47]\\d{3,6}" }, "TO": { "dial_code": "+676", "format": "xxxxx", - "regex": "^(?:\\+676)?\\d{5}$" + "regex": "(?:0800|(?:[5-8]\\d\\d|999)\\d)\\d{3}|[2-8]\\d{4}" }, "TT": { "dial_code": "+1", "format": "xxx-xxxx", - "regex": "^(?:(?:\\+?1-868)|\\(?868\\)?)(\\d{7})$" + "regex": "(?:[58]\\d\\d|900)\\d{7}" }, "TN": { "dial_code": "+216", "format": "xx xxxxxx", - "regex": "^(?:(?:\\+216)|22|9[1-9])\\d{7}$" + "regex": "[2-57-9]\\d{7}" }, "TR": { "dial_code": "+90", "format": "xxx xxx xx xx", - "regex": "^(?:(?:\\+90)|(0))\\s?5\\d{9}$" + "regex": "4\\d{6}|8\\d{11,12}|(?:[2-58]\\d\\d|900)\\d{7}" }, "TM": { "dial_code": "+993", "format": "x xxx xxx", - "regex": "^(?:\\+993)?\\d{8}$" + "regex": "(?:[1-6]\\d|71)\\d{6}" }, "TC": { "dial_code": "+1", "format": "xxx-xxxx", - "regex": "^(?:\\+1-649)?\\d{7}$" + "regex": "(?:[58]\\d\\d|649|900)\\d{7}" }, "TV": { "dial_code": "+688", "format": "xxxxx", - "regex": "^(?:\\+688)?\\d{5}$" + "regex": "(?:2|7\\d\\d|90)\\d{4}" }, "UG": { "dial_code": "+256", "format": "xxx xxxxxxx", - "regex": "^(?:(?:\\+256)|0)?[39]\\d{8}$" + "regex": "800\\d{6}|(?:[29]0|[347]\\d)\\d{7}" }, "UA": { "dial_code": "+380", "format": "xx xxx xx xx", - "regex": "^(?:(?:\\+380)|(0))?(39|50|63|66|67|68|91|92|93|94|95|96|97|98|99)\\d{7}$" + "regex": "[89]\\d{9}|[3-9]\\d{8}" }, "AE": { "dial_code": "+971", "format": "xx xxx xxxx", - "regex": "^(?:\\+?971|0)?(?:2|3|4|6|7|9)\\d{8}$" + "regex": "(?:[4-7]\\d|9[0-689])\\d{7}|800\\d{2,9}|[2-4679]\\d{7}" }, "GB": { "dial_code": "+44", "format": "xxxx xxx xxx", - "regex": "^(?:(?:\\+44\\s?|0)7\\d{3}(\\s?\\d{4,})?)$" + "regex": "[1-357-9]\\d{9}|[18]\\d{8}|8\\d{6}" }, "UM": { "dial_code": "+1", @@ -1183,72 +1183,72 @@ "US": { "dial_code": "+1", "format": "xxx-xxx-xxxx", - "regex": "^(\\+\\d{1,2}\\s?)?([2-9]{1}\\d{2}[2-9]{1}\\d{6})$" + "regex": "[2-9]\\d{9}|3\\d{6}" }, "UY": { "dial_code": "+598", "format": "xxx-xxxxx", - "regex": "^(?:(?:\\+598|0)\\s?(9\\d{3}|2\\d{2}|[4-9]\\d{6}))$" + "regex": "0004\\d{2,9}|[1249]\\d{7}|(?:[49]\\d|80)\\d{5}" }, "UZ": { "dial_code": "+998", "format": "xxx-xxx-xx-xx", - "regex": "^(?:\\+?998)?\\s?[3456789]\\d{8}$" + "regex": "(?:20|33|[5-79]\\d|88)\\d{7}" }, "VU": { "dial_code": "+678", "format": "xx xxxxx", - "regex": "^(?:\\+678)?\\d{7}$" + "regex": "[57-9]\\d{6}|(?:[238]\\d|48)\\d{3}" }, "VE": { "dial_code": "+58", "format": "xxxx-xxx-xxxx", - "regex": "^(?:(?:\\+58)|0)?4\\d{9}$" + "regex": "[68]00\\d{7}|(?:[24]\\d|[59]0)\\d{8}" }, "VN": { "dial_code": "+84", "format": "xxxx-xxxxxxx", - "regex": "^(?:(?:\\+84)|0)?[1-9]\\d{8}$" + "regex": "[12]\\d{9}|[135-9]\\d{8}|[16]\\d{7}|[16-8]\\d{6}" }, "VG": { "dial_code": "+1", "format": "xxx-xxxx", - "regex": "^(?:\\+1-284)?\\d{7}$" + "regex": "(?:284|[58]\\d\\d|900)\\d{7}" }, "VI": { "dial_code": "+1", "format": "xxx-xxxx", - "regex": "^(?:\\+1-340)?\\d{7}$" + "regex": "[58]\\d{9}|(?:34|90)0\\d{7}" }, "WF": { "dial_code": "+681", "format": "xx xxxx", - "regex": "^(?:\\+681)?\\d{6}$" + "regex": "(?:40|72)\\d{4}|8\\d{5}(?:\\d{3})?" }, "EH": { "dial_code": "+212", "format": "xx xx xx xx", - "regex": "^(?:\\+212)?(?:\\d{9})$" + "regex": "[5-8]\\d{8}" }, "YE": { "dial_code": "+967", "format": "xxxx-xxxx", - "regex": "^(?:\\+?967)?(?:\\d{7,8})$" + "regex": "(?:1|7\\d)\\d{7}|[1-7]\\d{6}" }, "ZM": { "dial_code": "+260", "format": "xxx-xxxxxxx", - "regex": "^(?:(?:\\+260)|0)?[123456789]\\d{8,9}$" + "regex": "800\\d{6}|(?:21|63|[79]\\d)\\d{7}" }, "ZW": { "dial_code": "+263", "format": "xx xxx xxxx", - "regex": "^(?:(?:\\+263)|0)?(?:\\d{9,10})$" + "regex": "2(?:[0-57-9]\\d{6,8}|6[0-24-9]\\d{6,7})|[38]\\d{9}|[35-8]\\d{8}|[3-6]\\d{7}|[1-689]\\d{6}|[1-3569]\\d{5}|[1356]\\d{4}" }, "XK": { "dial_code": "+383", "format": "xxx xxx xxx", - "regex": "^\\+383\\s\\d{3}\\s\\d{3}\\s\\d{3}$" + "regex": "2\\d{7,8}|3\\d{7,11}|(?:4\\d\\d|[89]00)\\d{5}" }, "FW": { "dial_code": "+590", diff --git a/packages/i18nify-go/modules/phonenumber/data.json b/packages/i18nify-go/modules/phonenumber/data.json index 9222558f..37e70ca5 100644 --- a/packages/i18nify-go/modules/phonenumber/data.json +++ b/packages/i18nify-go/modules/phonenumber/data.json @@ -3,42 +3,42 @@ "AF": { "dial_code": "+93", "format": "xx xxx xxxx", - "regex": "/^(?:\\+93)?\\d{9}$/" + "regex": "[2-7]\\d{8}" }, "AX": { "dial_code": "+358", "format": "xxx xxx", - "regex": "/^\\+358\\d{5,8}$/" + "regex": "2\\d{4,9}|35\\d{4,5}|(?:60\\d\\d|800)\\d{4,6}|7\\d{5,11}|(?:[14]\\d|3[0-46-9]|50)\\d{4,8}" }, "AL": { "dial_code": "+355", "format": "xxx xx xxxx", - "regex": "/^(?:\\+?355)?(?:[4-9]\\d{7}|6\\d{8})$/" + "regex": "(?:700\\d\\d|900)\\d{3}|8\\d{5,7}|(?:[2-5]|6\\d)\\d{7}" }, "DZ": { "dial_code": "+213", "format": "xxxx-xxxx-xxx", - "regex": "/^(?:\\+?213|0)([567]\\d{8})$/" + "regex": "(?:[1-4]|[5-79]\\d|80)\\d{7}" }, "AS": { "dial_code": "+1", "format": "xxx-xxxx", - "regex": "/^(?:\\+1-684)?(?:\\d{7})$/" + "regex": "(?:[58]\\d\\d|684|900)\\d{7}" }, "AD": { "dial_code": "+376", "format": "xxx xxx", - "regex": "/^(?:\\+376)?\\d{6}$/" + "regex": "(?:1|6\\d)\\d{7}|[135-9]\\d{5}" }, "AO": { "dial_code": "+244", "format": "xx xxx xxxx", - "regex": "/^(?:\\+244)?(?:\\d{9})$/" + "regex": "[29]\\d{8}" }, "AI": { "dial_code": "+1", "format": "xxx-xxxx", - "regex": "/^(?:\\+1-264)?(?:\\d{7})$/" + "regex": "(?:264|[58]\\d\\d|900)\\d{7}" }, "AQ": { "dial_code": "+672", @@ -48,107 +48,107 @@ "AG": { "dial_code": "+1", "format": "xxx-xxxx", - "regex": "/^(?:\\+1-268)?(?:\\d{7})$/" + "regex": "(?:268|[58]\\d\\d|900)\\d{7}" }, "AR": { "dial_code": "+54", "format": "xxxx-xxxx", - "regex": "/^(?:(?:\\+|0{0,2})54)?(?:11|[2368]\\d)(?:(?=\\d{0,2}15)\\d{2})??\\d{8}$/" + "regex": "(?:11|[89]\\d\\d)\\d{8}|[2368]\\d{9}" }, "AM": { "dial_code": "+374", "format": "xx xx xx xx", - "regex": "/^(?:\\+?374)?(?:[0-9]{8}|[0-9]{6}[0-9]{2})$/" + "regex": "(?:[1-489]\\d|55|60|77)\\d{6}" }, "AW": { "dial_code": "+297", "format": "xxx-xxxx", - "regex": "/^(?:(?:\\+297)?(?!0)\\d{7})$/" + "regex": "(?:[25-79]\\d\\d|800)\\d{4}" }, "AU": { "dial_code": "+61", "format": "xxx xxx xxx", - "regex": "/^(?:\\+?61|0)4\\d{8}$/" + "regex": "1(?:[0-79]\\d{7}(?:\\d(?:\\d{2})?)?|8[0-24-9]\\d{7})|[2-478]\\d{8}|1\\d{4,7}" }, "AT": { "dial_code": "+43", "format": "xxx xxxxxxxx", - "regex": "/^(?:\\+43)?(?:\\d{4,13})$/" + "regex": "1\\d{3,12}|2\\d{6,12}|43(?:(?:0\\d|5[02-9])\\d{3,9}|2\\d{4,5}|[3467]\\d{4}|8\\d{4,6}|9\\d{4,7})|5\\d{4,12}|8\\d{7,12}|9\\d{8,12}|(?:[367]\\d|4[0-24-9])\\d{4,11}" }, "AZ": { "dial_code": "+994", "format": "xx xxx xx xx", - "regex": "/^(?:\\+994)?(?:\\d{9})$/" + "regex": "365\\d{6}|(?:[124579]\\d|60|88)\\d{7}" }, "BS": { "dial_code": "+1", "format": "xxx-xxxx", - "regex": "/^(?:(?:\\+1)?242)?(?:\\d{3})?\\d{7}$/" + "regex": "(?:242|[58]\\d\\d|900)\\d{7}" }, "BH": { "dial_code": "+973", "format": "xxxx xxxx", - "regex": "/^(?:\\+?973)?[356]\\d{7}$/" + "regex": "[136-9]\\d{7}" }, "BD": { "dial_code": "+880", "format": "xxxx-xxxxxx", - "regex": "/^(?:\\+?880|0)1[13456789]\\d{8}$/" + "regex": "[1-469]\\d{9}|8[0-79]\\d{7,8}|[2-79]\\d{8}|[2-9]\\d{7}|[3-9]\\d{6}|[57-9]\\d{5}" }, "BB": { "dial_code": "+1", "format": "xxx-xxxx", - "regex": "/^(?:(?:\\+1)?246)?(?:\\d{3})?\\d{7}$/" + "regex": "(?:246|[58]\\d\\d|900)\\d{7}" }, "BY": { "dial_code": "+375", "format": "xx xxx-xx-xx", - "regex": "/^(?:\\+375)?(?:\\d{9})$/" + "regex": "(?:[12]\\d|33|44|902)\\d{7}|8(?:0[0-79]\\d{5,7}|[1-7]\\d{9})|8(?:1[0-489]|[5-79]\\d)\\d{7}|8[1-79]\\d{6,7}|8[0-79]\\d{5}|8\\d{5}" }, "BE": { "dial_code": "+32", "format": "xxx xx xx xx", - "regex": "/^(?:\\+32)?(?:\\d{8,9})$/" + "regex": "4\\d{8}|[1-9]\\d{7}" }, "BZ": { "dial_code": "+501", "format": "xxx-xxxx", - "regex": "/^(?:(?:\\+501)?\\s?)?[622]\\d{4}$/" + "regex": "(?:0800\\d|[2-8])\\d{6}" }, "BJ": { "dial_code": "+229", "format": "xx xx xx xx", - "regex": "/^(?:\\+229)?(?:\\d{8})$/" + "regex": "[24-689]\\d{7}" }, "BM": { "dial_code": "+1", "format": "xxx-xxxx", - "regex": "/^(?:(?:\\+1)?441)?(?:\\d{2})?\\d{7}$/" + "regex": "(?:441|[58]\\d\\d|900)\\d{7}" }, "BT": { "dial_code": "+975", "format": "x xxx xxx", - "regex": "/^(?:\\+975)?(?:\\d{8})$/" + "regex": "[17]\\d{7}|[2-8]\\d{6}" }, "BO": { "dial_code": "+591", "format": "xxxx-xxxx", - "regex": "/^(?:(?:\\+|0{0,2})591)?(?:(?:2|3|7|6)\\d{7})$/" + "regex": "(?:[2-467]\\d\\d|8001)\\d{5}" }, "BQ": { "dial_code": "+599", "format": "xxx xxxx", - "regex": "/^(?:\\+599)?(?:\\d{7})$/" + "regex": "(?:[34]1|7\\d)\\d{5}" }, "BA": { "dial_code": "+387", "format": "xx xxx-xxxx", - "regex": "/^(?:\\+387)?(?:\\d{6,8})$/" + "regex": "6\\d{8}|(?:[35689]\\d|49|70)\\d{6}" }, "BW": { "dial_code": "+267", "format": "xx xxxx xxxx", - "regex": "/^(?:(?:\\+267)?\\s?)?[74]\\d{7}$/" + "regex": "(?:0800|(?:[37]|800)\\d)\\d{6}|(?:[2-6]\\d|90)\\d{5}" }, "BV": { "dial_code": "+47", @@ -158,242 +158,242 @@ "BR": { "dial_code": "+55", "format": "xx xxxx-xxxx", - "regex": "/^(?:\\+55)?(?:\\d{10,11})$/" + "regex": "(?:[1-46-9]\\d\\d|5(?:[0-46-9]\\d|5[0-46-9]))\\d{8}|[1-9]\\d{9}|[3589]\\d{8}|[34]\\d{7}" }, "IO": { "dial_code": "+246", "format": "xxx xxxx", - "regex": "/^\\+246\\d{7}$/" + "regex": "3\\d{6}" }, "BN": { "dial_code": "+673", "format": "xxxx-xxxx", - "regex": "/^(?:\\+?673)?(?:\\d{3})?\\d{4}$/" + "regex": "[2-578]\\d{6}" }, "BG": { "dial_code": "+359", "format": "xx xxx xxxx", - "regex": "/^(?:\\+359)?(?:\\d{7,9})$/" + "regex": "00800\\d{7}|[2-7]\\d{6,7}|[89]\\d{6,8}|2\\d{5}" }, "BF": { "dial_code": "+226", "format": "xx xx xx xx", - "regex": "/^(?:\\+226)?(?:\\d{8})$/" + "regex": "[025-7]\\d{7}" }, "BI": { "dial_code": "+257", "format": "xx xx xx xx", - "regex": "/^(?:\\+257)?(?:\\d{8})$/" + "regex": "(?:[267]\\d|31)\\d{6}" }, "CV": { "dial_code": "+238", "format": "xxx xxxx", - "regex": "/^(?:\\+238)?(?:\\d{7})$/" + "regex": "(?:[2-59]\\d\\d|800)\\d{4}" }, "KH": { "dial_code": "+855", "format": "xxx-xxx-xxx", - "regex": "/^(?:(?:\\+855)|(?:0))(?:\\s?[1-9]\\d{7,8})$/" + "regex": "1\\d{9}|[1-9]\\d{7,8}" }, "CM": { "dial_code": "+237", "format": "xx xx xx xx", - "regex": "/^(?:\\+237)?(?:\\d{9})$/" + "regex": "[26]\\d{8}|88\\d{6,7}" }, "CA": { "dial_code": "+1", "format": "xxx-xxx-xxxx", - "regex": "/^(\\+\\d{1,2}\\s?)?([2-9]{1}\\d{2}[2-9]{1}\\d{6})$/" + "regex": "(?:[2-8]\\d|90)\\d{8}|3\\d{6}" }, "KY": { "dial_code": "+1", "format": "xxx-xxxx", - "regex": "/^(?:\\+?1\\s?(345))\\d{6}$/" + "regex": "(?:345|[58]\\d\\d|900)\\d{7}" }, "CF": { "dial_code": "+236", "format": "xx xx xx xx", - "regex": "/^(?:\\+236)?(?:\\d{8})$/" + "regex": "(?:[27]\\d{3}|8776)\\d{4}" }, "TD": { "dial_code": "+235", "format": "xx xx xx xx", - "regex": "/^(?:\\+235)?\\d{8}$/" + "regex": "(?:22|[69]\\d|77)\\d{6}" }, "CL": { "dial_code": "+56", "format": "x xxxx xxxx", - "regex": "/^(?:\\+56)?(?:\\d{9})$/" + "regex": "12300\\d{6}|6\\d{9,10}|[2-9]\\d{8}" }, "CN": { "dial_code": "+86", "format": "xxxx-xxxxxxx", - "regex": "/^(?:(?:\\+|00)86)?1\\d{10}$/" + "regex": "1[127]\\d{8,9}|2\\d{9}(?:\\d{2})?|[12]\\d{6,7}|86\\d{6}|(?:1[03-689]\\d|6)\\d{7,9}|(?:[3-579]\\d|8[0-57-9])\\d{6,9}" }, "CX": { "dial_code": "+61", "format": "xxx xxxx xxxx", - "regex": "/^(?:\\+61)?(?:\\d{8,9})$/" + "regex": "1(?:[0-79]\\d{8}(?:\\d{2})?|8[0-24-9]\\d{7})|[148]\\d{8}|1\\d{5,7}" }, "CC": { "dial_code": "+61", "format": "xxx xxxx xxxx", - "regex": "/^(?:\\+61)?(?:\\d{8,9})$/" + "regex": "1(?:[0-79]\\d{8}(?:\\d{2})?|8[0-24-9]\\d{7})|[148]\\d{8}|1\\d{5,7}" }, "CO": { "dial_code": "+57", "format": "xxxx-xxxxxxx", - "regex": "/^(?:(?:\\+57|0057)?)?[1-8]{1}\\d{6,7}$/" + "regex": "(?:60\\d\\d|9101)\\d{6}|(?:1\\d|3)\\d{9}" }, "KM": { "dial_code": "+269", "format": "xx xx xx xx", - "regex": "/^(?:\\+269)?\\d{7}$/" + "regex": "[3478]\\d{6}" }, "CD": { "dial_code": "+243", "format": "xx xxx xxxx", - "regex": "/^(?:\\+243)?(?:\\d{9})$/" + "regex": "[189]\\d{8}|[1-68]\\d{6}" }, "CG": { "dial_code": "+242", "format": "xx xx xx xx", - "regex": "/^(?:\\+242)?(?:\\d{9})$/" + "regex": "222\\d{6}|(?:0\\d|80)\\d{7}" }, "CK": { "dial_code": "+682", "format": "xx xxx", - "regex": "/^(?:\\+682)?(?:\\d{5})$/" + "regex": "[2-578]\\d{4}" }, "CR": { "dial_code": "+506", "format": "xxxx-xxxx", - "regex": "/^(?:(?:\\+506)?\\s*|0)?[1-9]\\d{7}$/" + "regex": "(?:8\\d|90)\\d{8}|(?:[24-8]\\d{3}|3005)\\d{4}" }, "CI": { "dial_code": "+225", "format": "xx xx xx xx", - "regex": "/^(?:\\+225)?(?:\\d{8})$/" + "regex": "[02]\\d{9}" }, "HR": { "dial_code": "+385", "format": "xxx xxx xxxx", - "regex": "/^(?:\\+?385)?\\d{8,9}$/" + "regex": "(?:[24-69]\\d|3[0-79])\\d{7}|80\\d{5,7}|[1-79]\\d{7}|6\\d{5,6}" }, "CU": { "dial_code": "+53", "format": "xxxx-xxxx", - "regex": "/^(?:\\+?53)?(?:[5-8]\\d{7})$/" + "regex": "(?:[2-7]|8\\d\\d)\\d{7}|[2-47]\\d{6}|[34]\\d{5}" }, "CW": { "dial_code": "+599", "format": "xxx xxxx", - "regex": "/^(?:\\+599)?(?:\\d{7})$/" + "regex": "(?:[34]1|60|(?:7|9\\d)\\d)\\d{5}" }, "CY": { "dial_code": "+357", "format": "xx xxxxxx", - "regex": "/^(?:\\+357)?(?:\\d{8})$/" + "regex": "(?:[279]\\d|[58]0)\\d{6}" }, "CZ": { "dial_code": "+420", "format": "xxx xxx xxx", - "regex": "/^(?:\\+?420)?(?:\\d{9})$/" + "regex": "(?:[2-578]\\d|60)\\d{7}|9\\d{8,11}" }, "DK": { "dial_code": "+45", "format": "xx xx xx xx", - "regex": "/^(?:\\+?45)?(?:\\d{8})$/" + "regex": "[2-9]\\d{7}" }, "DJ": { "dial_code": "+253", "format": "xx xx xx xx", - "regex": "/^(?:\\+253)?(?:\\d{6})$/" + "regex": "(?:2\\d|77)\\d{6}" }, "DM": { "dial_code": "+1", "format": "xxx-xxxx", - "regex": "/^(?:\\+1-767)?(?:\\d{7})$/" + "regex": "(?:[58]\\d\\d|767|900)\\d{7}" }, "DO": { "dial_code": "+1", "format": "xxx-xxxxxxx", - "regex": "/^(?:(?:\\+1)?809|1-8(?:00|88|89))(?:\\d{7})$/" + "regex": "(?:[58]\\d\\d|900)\\d{7}" }, "EC": { "dial_code": "+593", "format": "xx xxx xxxx", - "regex": "/^(?:\\+593)?(?:\\d{8,9})$/" + "regex": "1\\d{9,10}|(?:[2-7]|9\\d)\\d{7}" }, "EG": { "dial_code": "+20", "format": "xx xxx xxxx", - "regex": "/^(?:(?:\\+20|20)?(\\d{10}))$/" + "regex": "[189]\\d{8,9}|[24-6]\\d{8}|[135]\\d{7}" }, "SV": { "dial_code": "+503", "format": "xxxx-xxxx", - "regex": "/^(?:(?:\\+?503)|(?:0))(?:\\d{8})$/" + "regex": "[267]\\d{7}|(?:80\\d|900)\\d{4}(?:\\d{4})?" }, "GQ": { "dial_code": "+240", "format": "xx xxx xxxx", - "regex": "/^(?:\\+240)?\\d{9}$/" + "regex": "222\\d{6}|(?:3\\d|55|[89]0)\\d{7}" }, "ER": { "dial_code": "+291", "format": "x xxx xxxx", - "regex": "/^(?:\\+291)?(?:\\d{6,7})$/" + "regex": "[178]\\d{6}" }, "EE": { "dial_code": "+372", "format": "xxx xxxx", - "regex": "/^(?:\\+372)?(?:\\d{7,8})$/" + "regex": "8\\d{9}|[4578]\\d{7}|(?:[3-8]\\d|90)\\d{5}" }, "SZ": { "dial_code": "+268", "format": "xxx xx xxxx", - "regex": "/^(?:\\+?268)?\\d{7,8}$/" + "regex": "0800\\d{4}|(?:[237]\\d|900)\\d{6}" }, "ET": { "dial_code": "+251", "format": "xx xxx xxxx", - "regex": "/^(?:\\+?251)?[1-59]\\d{8}$/" + "regex": "(?:11|[2-579]\\d)\\d{7}" }, "FK": { "dial_code": "+500", "format": "xxxxx", - "regex": "/^(?:\\+500)?(?:\\d{5})$/" + "regex": "[2-7]\\d{4}" }, "FO": { "dial_code": "+298", "format": "xxx xxx", - "regex": "/^(?:\\+298)?(?:\\d{6})$/" + "regex": "[2-9]\\d{5}" }, "FJ": { "dial_code": "+679", "format": "xxxx xxxx", - "regex": "/^(?:(?:\\+?679)?\\s?\\d{3}\\s?\\d{4})?$/" + "regex": "45\\d{5}|(?:0800\\d|[235-9])\\d{6}" }, "FI": { "dial_code": "+358", "format": "xx xxx xxxx", - "regex": "/^(?:\\+358)?(?:\\d{5,12})$/" + "regex": "[1-35689]\\d{4}|7\\d{10,11}|(?:[124-7]\\d|3[0-46-9])\\d{8}|[1-9]\\d{5,8}" }, "FR": { "dial_code": "+33", "format": "xx xx xx xx xx", - "regex": "/^(?:\\+33)?(?:\\d{9})$/" + "regex": "[1-9]\\d{8}" }, "GF": { "dial_code": "+594", "format": "xxx xx xx xx", - "regex": "/^(?:\\+594)?\\d{9}$/" + "regex": "[56]94\\d{6}|(?:80|9\\d)\\d{7}" }, "PF": { "dial_code": "+689", "format": "xx xx xx xx", - "regex": "/^(?:\\+689)?\\d{6}$/" + "regex": "4\\d{5}(?:\\d{2})?|8\\d{7,8}" }, "TF": { "dial_code": "+1", @@ -403,87 +403,87 @@ "GA": { "dial_code": "+241", "format": "xx xx xx xx", - "regex": "/^(?:\\+241)?(?:\\d{6,7})$/" + "regex": "(?:[067]\\d|11)\\d{6}|[2-7]\\d{6}" }, "GM": { "dial_code": "+220", "format": "xxxx-xxxx", - "regex": "/^(?:\\+220)?\\d{5,7}$/" + "regex": "[2-9]\\d{6}" }, "GE": { "dial_code": "+995", "format": "xxx xxx xxx", - "regex": "/^(?:\\+995)?(?:\\d{8,9})$/" + "regex": "(?:[3-57]\\d\\d|800)\\d{6}" }, "DE": { "dial_code": "+49", "format": "xxx xxxxxxxx", - "regex": "/^(?:\\+49)?(?:\\d{6,11})$/" + "regex": "[2579]\\d{5,14}|49(?:[34]0|69|8\\d)\\d\\d?|49(?:37|49|60|7[089]|9\\d)\\d{1,3}|49(?:2[024-9]|3[2-689]|7[1-7])\\d{1,8}|(?:1|[368]\\d|4[0-8])\\d{3,13}|49(?:[015]\\d|2[13]|31|[46][1-8])\\d{1,9}" }, "GH": { "dial_code": "+233", "format": "xxx xxx xxxx", - "regex": "/^(?:(?:\\+233)|0)?(?:\\d{9})$/" + "regex": "(?:[235]\\d{3}|800)\\d{5}" }, "GI": { "dial_code": "+350", "format": "xxxx xxxx", - "regex": "/^(?:\\+350)?\\d{5}$/" + "regex": "(?:[25]\\d|60)\\d{6}" }, "GR": { "dial_code": "+30", "format": "xx xxx xxxx", - "regex": "/^(?:\\+30)?\\d{10}$/" + "regex": "5005000\\d{3}|8\\d{9,11}|(?:[269]\\d|70)\\d{8}" }, "GL": { "dial_code": "+299", "format": "xx xx xx", - "regex": "/^(?:\\+299)?\\d{6}$/" + "regex": "(?:19|[2-689]\\d|70)\\d{4}" }, "GD": { "dial_code": "+1", "format": "xxx-xxxx", - "regex": "/^(?:\\+1-473)?(?:\\d{7})$/" + "regex": "(?:473|[58]\\d\\d|900)\\d{7}" }, "GP": { "dial_code": "+590", "format": "xxx xx xx xx", - "regex": "/^(?:\\+590)?\\d{9}$/" + "regex": "590\\d{6}|(?:69|80|9\\d)\\d{7}" }, "GU": { "dial_code": "+1", "format": "xxx-xxxx", - "regex": "/^(?:\\+1-671)?\\d{7}$/" + "regex": "(?:[58]\\d\\d|671|900)\\d{7}" }, "GT": { "dial_code": "+502", "format": "xxxx-xxxx", - "regex": "/^(?:\\+502)?[2468]\\d{7,8}$/" + "regex": "80\\d{6}|(?:1\\d{3}|[2-7])\\d{7}" }, "GG": { "dial_code": "+44", "format": "xxxx xxxx", - "regex": "/^(?:\\+44-1481)?\\d{6}$/" + "regex": "(?:1481|[357-9]\\d{3})\\d{6}|8\\d{6}(?:\\d{2})?" }, "GN": { "dial_code": "+224", "format": "xx xx xx xx", - "regex": "/^(?:\\+224)?\\d{8}$/" + "regex": "722\\d{6}|(?:3|6\\d)\\d{7}" }, "GW": { "dial_code": "+245", "format": "xx xx xx xx", - "regex": "/^(?:\\+245)?\\d{7}$/" + "regex": "[49]\\d{8}|4\\d{6}" }, "GY": { "dial_code": "+592", "format": "xxx-xxxx", - "regex": "/^(?:(?:\\+592)?(?:(?:\\s)?[2-9])(?:(?:\\s)?\\d))?(?:(?:\\s)?\\d{4})$/" + "regex": "(?:[2-8]\\d{3}|9008)\\d{3}" }, "HT": { "dial_code": "+509", "format": "xxx-xxxx", - "regex": "/^(?:\\+?509)?\\d{8}$/" + "regex": "(?:[2-489]\\d|55)\\d{6}" }, "HM": { "dial_code": "+00672", @@ -493,392 +493,392 @@ "VA": { "dial_code": "+39", "format": "xxx xxxx xxxx", - "regex": "/^(?:\\+379)?\\d{8,12}$/" + "regex": "0\\d{5,10}|3[0-8]\\d{7,10}|55\\d{8}|8\\d{5}(?:\\d{2,4})?|(?:1\\d|39)\\d{7,8}" }, "HN": { "dial_code": "+504", "format": "xxxx-xxxx", - "regex": "/^(?:\\+504)?[89]\\d{7}$/" + "regex": "8\\d{10}|[237-9]\\d{7}" }, "HK": { "dial_code": "+852", "format": "xxxx xxxx", - "regex": "/^(?:\\+852\\s?)?[456789]\\d{3}\\s?\\d{4}$/" + "regex": "8[0-46-9]\\d{6,7}|9\\d{4,7}|(?:[2-7]|9\\d{3})\\d{7}" }, "HU": { "dial_code": "+36", "format": "xxx xxx xxxx", - "regex": "/^(?:(?:\\+36))(\\s?\\d{2}\\s?\\d{3}\\s?\\d{4})$/" + "regex": "[235-7]\\d{8}|[1-9]\\d{7}" }, "IS": { "dial_code": "+354", "format": "xxx xxxx", - "regex": "/^(?:\\+354)?\\d{7}$/" + "regex": "(?:38\\d|[4-9])\\d{6}" }, "IN": { "dial_code": "+91", "format": "xxxx xxxxxx", - "regex": "/^(?:(?:\\+|0{0,2})91\\s*[-]?\\s*|[0]?)?[6789]\\d{9}$/" + "regex": "(?:000800|[2-9]\\d\\d)\\d{7}|1\\d{7,12}" }, "ID": { "dial_code": "+62", "format": "xxxx-xxxx-xxxx", - "regex": "/^(?:\\+?62|0[1-9])[\\s-]?\\d{2,4}[\\s-]?\\d{3,4}[\\s-]?\\d{3,4}$/" + "regex": "(?:(?:00[1-9]|8\\d)\\d{4}|[1-36])\\d{6}|00\\d{10}|[1-9]\\d{8,10}|[2-9]\\d{7}" }, "IR": { "dial_code": "+98", "format": "xx xxxx xxxx", - "regex": "/^(?:\\+98)?\\d{10}$/" + "regex": "[1-9]\\d{9}|(?:[1-8]\\d\\d|9)\\d{3,4}" }, "IQ": { "dial_code": "+964", "format": "xx xxx xxxx", - "regex": "/^(?:\\+964)?\\d{10}$/" + "regex": "(?:1|7\\d\\d)\\d{7}|[2-6]\\d{7,8}" }, "IE": { "dial_code": "+353", "format": "xx xxx xxxx", - "regex": "/^(?:\\+353)?\\d{7,10}$/" + "regex": "(?:1\\d|[2569])\\d{6,8}|4\\d{6,9}|7\\d{8}|8\\d{8,9}" }, "IM": { "dial_code": "+44", "format": "xxxx xxxx", - "regex": "/^(?:\\+44-1624)?\\d{6}$/" + "regex": "1624\\d{6}|(?:[3578]\\d|90)\\d{8}" }, "IL": { "dial_code": "+972", "format": "xxxx-xxx-xxx", - "regex": "/^(?:(?:\\+972|0)(?:-)?)[23489]\\d{7}$/" + "regex": "1\\d{6}(?:\\d{3,5})?|[57]\\d{8}|[1-489]\\d{7}" }, "IT": { "dial_code": "+39", "format": "xxx xxxx xxxx", - "regex": "/^(?:\\+39)?\\d{9,10}$/" + "regex": "0\\d{5,10}|1\\d{8,10}|3(?:[0-8]\\d{7,10}|9\\d{7,8})|(?:43|55|70)\\d{8}|8\\d{5}(?:\\d{2,4})?" }, "JM": { "dial_code": "+1", "format": "xxx-xxxx", - "regex": "/^(?:(?:\\+1876))\\d{7,10}$/" + "regex": "(?:[58]\\d\\d|658|900)\\d{7}" }, "JP": { "dial_code": "+81", "format": "xx xxxx xxxx", - "regex": "/^(?:\\+81)?\\d{10}$/" + "regex": "00[1-9]\\d{6,14}|[257-9]\\d{9}|(?:00|[1-9]\\d\\d)\\d{6}" }, "JE": { "dial_code": "+44", "format": "xxxx xxxx", - "regex": "/^(?:\\+44-1534)?\\d{6}$/" + "regex": "1534\\d{6}|(?:[3578]\\d|90)\\d{8}" }, "JO": { "dial_code": "+962", "format": "xx xxxx xxxx", - "regex": "/^(?:\\+962)?\\d{9}$/" + "regex": "(?:(?:[2689]|7\\d)\\d|32|53)\\d{6}" }, "KZ": { "dial_code": "+7", "format": "xxx-xxx-xx-xx", - "regex": "/^(?:\\+?7|8)?7\\d{9}$/" + "regex": "(?:33622|8\\d{8})\\d{5}|[78]\\d{9}" }, "KE": { "dial_code": "+254", "format": "xxx xxxxxx", - "regex": "/^(?:(?:\\+254)|(?:0))(?:\\d{6,7})$/" + "regex": "(?:[17]\\d\\d|900)\\d{6}|(?:2|80)0\\d{6,7}|[4-6]\\d{6,8}" }, "KI": { "dial_code": "+686", "format": "xx xxx", - "regex": "/^(?:\\+686)?\\d{5}$/" + "regex": "(?:[37]\\d|6[0-79])\\d{6}|(?:[2-48]\\d|50)\\d{3}" }, "KP": { "dial_code": "+850", "format": "xx xxx xxxx", - "regex": "/^\\+850\\d{6,9}$/" + "regex": "85\\d{6}|(?:19\\d|[2-7])\\d{7}" }, "KR": { "dial_code": "+82", "format": "xx xxxx xxxx", - "regex": "/^(?:\\+82)?\\d{8,11}$/" + "regex": "00[1-9]\\d{8,11}|(?:[12]|5\\d{3})\\d{7}|[13-6]\\d{9}|(?:[1-6]\\d|80)\\d{7}|[3-6]\\d{4,5}|(?:00|7)0\\d{8}" }, "KW": { "dial_code": "+965", "format": "xxx xx xxxx", - "regex": "/^(?:\\+?965)[569]\\d{7}$/" + "regex": "18\\d{5}|(?:[2569]\\d|41)\\d{6}" }, "KG": { "dial_code": "+996", "format": "xxx-xx-xx-xx", - "regex": "/^(?:\\+996)?\\s?\\d{9}$/" + "regex": "8\\d{9}|[235-9]\\d{8}" }, "LA": { "dial_code": "+856", "format": "xxx xx xxxx", - "regex": "/^(?:(?:\\+?856)|0)(20\\d{7,9})$/" + "regex": "[23]\\d{9}|3\\d{8}|(?:[235-8]\\d|41)\\d{6}" }, "LV": { "dial_code": "+371", "format": "xxxx xxxx", - "regex": "/^(?:(?:\\+371)?2\\d{7})$/" + "regex": "(?:[268]\\d|90)\\d{6}" }, "LB": { "dial_code": "+961", "format": "xx xxx xxx", - "regex": "/^(?:\\+961)?\\d{8}$/" + "regex": "[27-9]\\d{7}|[13-9]\\d{6}" }, "LS": { "dial_code": "+266", "format": "xxx xx xxxx", - "regex": "/^(?:(?:\\+?266)|0)?[56]\\d{7}$/" + "regex": "(?:[256]\\d\\d|800)\\d{5}" }, "LR": { "dial_code": "+231", "format": "xxx-xxx-xxxx", - "regex": "/^(?:\\+231)[ -\\d]{4}[ -\\d]{4}$/" + "regex": "(?:[245]\\d|33|77|88)\\d{7}|(?:2\\d|[4-6])\\d{6}" }, "LY": { "dial_code": "+218", "format": "xx xxxxx xxxx", - "regex": "/^(?:\\+218)?\\d{9}$/" + "regex": "[2-9]\\d{8}" }, "LI": { "dial_code": "+423", "format": "xxx xx xx", - "regex": "/^(?:\\+423)?\\d{7}$/" + "regex": "[68]\\d{8}|(?:[2378]\\d|90)\\d{5}" }, "LT": { "dial_code": "+370", "format": "xxx xxxxx", - "regex": "/^(?:(?:\\+370)|8)\\d{8}$/" + "regex": "(?:[3469]\\d|52|[78]0)\\d{6}" }, "LU": { "dial_code": "+352", "format": "xxx xx xxx", - "regex": "/^(?:(?:\\+352)?(6|2(6|7|8|9))\\d{6})$/" + "regex": "35[013-9]\\d{4,8}|6\\d{8}|35\\d{2,4}|(?:[2457-9]\\d|3[0-46-9])\\d{2,9}" }, "MO": { "dial_code": "+853", "format": "xxxx xxxx", - "regex": "/^(?:(?:\\+?853)|[0-9])?\\d{8}$/" + "regex": "0800\\d{3}|(?:28|[68]\\d)\\d{6}" }, "MG": { "dial_code": "+261", "format": "xx xx xx xx xx", - "regex": "/^(?:(?:\\+261)?3[234568]\\d{7})$/" + "regex": "[23]\\d{8}" }, "MW": { "dial_code": "+265", "format": "xx xxxx xxxx", - "regex": "/^(?:\\+265)[1-9]\\d{6}$/" + "regex": "(?:[1289]\\d|31|77)\\d{7}|1\\d{6}" }, "MY": { "dial_code": "+60", "format": "xx xxxxx xx", - "regex": "/^(\\+?6?0)?(\\d{1,3})[-. ]?(\\d{7,8})$/" + "regex": "1\\d{8,9}|(?:3\\d|[4-9])\\d{7}" }, "MV": { "dial_code": "+960", "format": "xxxxxx", - "regex": "/^(?:(?:\\+?960)|0)?\\d{7}$/" + "regex": "(?:800|9[0-57-9]\\d)\\d{7}|[34679]\\d{6}" }, "ML": { "dial_code": "+223", "format": "xx xx xx xx", - "regex": "/^(?:\\+223)?\\d{8}$/" + "regex": "[24-9]\\d{7}" }, "MT": { "dial_code": "+356", "format": "xx xx xx xx", - "regex": "/^(?:\\+356)?\\d{8}$/" + "regex": "3550\\d{4}|(?:[2579]\\d\\d|800)\\d{5}" }, "MH": { "dial_code": "+692", "format": "xxx xxxx", - "regex": "/^(?:\\+692)?\\d{7}$/" + "regex": "329\\d{4}|(?:[256]\\d|45)\\d{5}" }, "MQ": { "dial_code": "+596", "format": "xxx xx xx xx", - "regex": "/^(?:\\+596)?\\d{9}$/" + "regex": "596\\d{6}|(?:69|80|9\\d)\\d{7}" }, "MR": { "dial_code": "+222", "format": "xx xx xx xx", - "regex": "/^(?:\\+222)?\\d{8}$/" + "regex": "(?:[2-4]\\d\\d|800)\\d{5}" }, "MU": { "dial_code": "+230", "format": "xx xxxx xxxx", - "regex": "/^(?:\\+230|0)?\\d{8}$/" + "regex": "(?:[57]|8\\d\\d)\\d{7}|[2-468]\\d{6}" }, "YT": { "dial_code": "+262", "format": "xxx xx xx xx", - "regex": "/^(?:\\+262)?\\d{9}$/" + "regex": "(?:80|9\\d)\\d{7}|(?:26|63)9\\d{6}" }, "MX": { "dial_code": "+52", "format": "xxx-xxx-xxxx", - "regex": "/^(?:(?:\\+?52)?\\s?(?:1|01)?\\s?)?(?:\\d{3}\\s?\\d{3}\\s?\\d{4})$/" + "regex": "[2-9]\\d{9}" }, "FM": { "dial_code": "+691", "format": "xxx xxxx", - "regex": "/^(?:\\+691)?(?:\\d{7})$/" + "regex": "(?:[39]\\d\\d|820)\\d{4}" }, "MD": { "dial_code": "+373", "format": "xx xxxxxx", - "regex": "/^(?:(?:\\+373)|(?:0))(?:\\d{7,8})$/" + "regex": "(?:[235-7]\\d|[89]0)\\d{6}" }, "MC": { "dial_code": "+377", "format": "xx xx xx xx", - "regex": "/^(?:\\+377)?\\d{8,9}$/" + "regex": "(?:[3489]|6\\d)\\d{7}" }, "MN": { "dial_code": "+976", "format": "xxx-xx-xxxx", - "regex": "/^(?:\\+976|0)\\d{8}$/" + "regex": "[12]\\d{7,9}|[5-9]\\d{7}" }, "ME": { "dial_code": "+382", "format": "xx xxxxxx", - "regex": "/^(?:(?:\\+382)?[67]\\d{7,20})$/" + "regex": "(?:20|[3-79]\\d)\\d{6}|80\\d{6,7}" }, "MS": { "dial_code": "+1", "format": "xxx-xxxx", - "regex": "/^(?:\\+1-664)?\\d{7}$/" + "regex": "(?:[58]\\d\\d|664|900)\\d{7}" }, "MA": { "dial_code": "+212", "format": "xxxx-xxxxxx", - "regex": "/^(?:(?:\\+?212(\\s*[-|\\s*]?\\d{1,9})?)|(?:0))(?:\\d{9})$/" + "regex": "[5-8]\\d{8}" }, "MZ": { "dial_code": "+258", "format": "xx xxxxxxx", - "regex": "/^(?:(?:\\+258)|(?:258))?8[234567]\\d{7,8}$/" + "regex": "(?:2|8\\d)\\d{7}" }, "MM": { "dial_code": "+95", "format": "xx xxxxxx", - "regex": "/^(?:(?:\\+?95)|0)?[1-9]\\d{9}$/" + "regex": "1\\d{5,7}|95\\d{6}|(?:[4-7]|9[0-46-9])\\d{6,8}|(?:2|8\\d)\\d{5,8}" }, "NA": { "dial_code": "+264", "format": "xx xxxx xxxx", - "regex": "/^(?:(?:\\+264)|0)?\\d{8}$/" + "regex": "[68]\\d{7,8}" }, "NR": { "dial_code": "+674", "format": "xxx xxxx", - "regex": "/^(?:\\+674)?\\d{7}$/" + "regex": "(?:444|(?:55|8\\d)\\d|666)\\d{4}" }, "NP": { "dial_code": "+977", "format": "xxxx-xxxxxxx", - "regex": "/^(?:(?:\\+977))?(\\d{9,10})$/" + "regex": "(?:1\\d|9)\\d{9}|[1-9]\\d{7}" }, "NL": { "dial_code": "+31", "format": "xxx-xxxxxxx", - "regex": "/^(?:(?:\\+31)|0(6(?:\\d{8})|[1-9](?:(?:\\d{8})|(?:\\s\\d{3}\\s\\d{4}))|(?:\\d{8})))$/" + "regex": "(?:[124-7]\\d\\d|3(?:[02-9]\\d|1[0-8]))\\d{6}|8\\d{6,9}|9\\d{6,10}|1\\d{4,5}" }, "NC": { "dial_code": "+687", "format": "xx xx xx", - "regex": "/^(?:\\+687)?\\d{6}$/" + "regex": "(?:050|[2-57-9]\\d\\d)\\d{3}" }, "NZ": { "dial_code": "+64", "format": "xxx-xxxxxxx", - "regex": "/^(?:\\+?64|0)(\\d{2,5} \\d{4,8}|\\d{3,4} \\d{4})$/" + "regex": "[1289]\\d{9}|50\\d{5}(?:\\d{2,3})?|[27-9]\\d{7,8}|(?:[34]\\d|6[0-35-9])\\d{6}|8\\d{4,6}" }, "NI": { "dial_code": "+505", "format": "xxxx-xxxx", - "regex": "/^(?:(?:\\+505))?(?:\\d{8})$/" + "regex": "(?:1800|[25-8]\\d{3})\\d{4}" }, "NE": { "dial_code": "+227", "format": "xx xx xx xx", - "regex": "/^(?:\\+227)?\\d{8}$/" + "regex": "[027-9]\\d{7}" }, "NG": { "dial_code": "+234", "format": "xxx xxx xxxx", - "regex": "/^(?:(?:\\+234)|(?:0))(?:\\d{7,8})$/" + "regex": "2[0-24-9]\\d{8}|[78]\\d{10,13}|[7-9]\\d{9}|[1-9]\\d{7}|[124-7]\\d{6}" }, "NU": { "dial_code": "+683", "format": "xxxx", - "regex": "/^(?:\\+683)?\\d{4}$/" + "regex": "(?:[4-7]|888\\d)\\d{3}" }, "NF": { "dial_code": "+672", "format": "x xxxx", - "regex": "/^(?:\\+672)?\\d{6}$/" + "regex": "[13]\\d{5}" }, "MK": { "dial_code": "+389", "format": "xx xx xx xx", - "regex": "/^(?:\\+389|0)(?:(?:2[0-4]|[3-9])\\s?)?\\d{6}$/" + "regex": "[2-578]\\d{7}" }, "MP": { "dial_code": "+1", "format": "xxx-xxxx", - "regex": "/^(?:\\+1-670)?\\d{7}$/" + "regex": "[58]\\d{9}|(?:67|90)0\\d{7}" }, "NO": { "dial_code": "+47", "format": "xxxx xxxx", - "regex": "/^(?:(?:\\+?47)|\\d{2}|\\d{3})\\s?\\d{2}\\s?\\d{3}$/" + "regex": "(?:0|[2-9]\\d{3})\\d{4}" }, "OM": { "dial_code": "+968", "format": "xxxx-xxxx", - "regex": "/^(?:\\+?968)?(?:95|96|97|98)\\d{6}$/" + "regex": "(?:1505|[279]\\d{3}|500)\\d{4}|800\\d{5,6}" }, "PK": { "dial_code": "+92", "format": "xxx-xxxxxxx", - "regex": "/^(?:(?:\\+92)|0)?[345]\\d{9}$/" + "regex": "122\\d{6}|[24-8]\\d{10,11}|9(?:[013-9]\\d{8,10}|2(?:[01]\\d\\d|2(?:[06-8]\\d|1[01]))\\d{7})|(?:[2-8]\\d{3}|92(?:[0-7]\\d|8[1-9]))\\d{6}|[24-9]\\d{8}|[89]\\d{7}" }, "PW": { "dial_code": "+680", "format": "xxx xxxx", - "regex": "/^(?:\\+680)?\\d{7}$/" + "regex": "(?:[24-8]\\d\\d|345|900)\\d{4}" }, "PS": { "dial_code": "+970", "format": "xxxx-xxxxxxx", - "regex": "/^(?:(?:\\+970))(5[2349])\\d{7}$/" + "regex": "[2489]2\\d{6}|(?:1\\d|5)\\d{8}" }, "PA": { "dial_code": "+507", "format": "xxx-xxxx", - "regex": "/^(?:(?:\\+507)\\s?)?[46]\\d{6,7}$/" + "regex": "(?:00800|8\\d{3})\\d{6}|[68]\\d{7}|[1-57-9]\\d{6}" }, "PG": { "dial_code": "+675", "format": "xxx-xxxxxx", - "regex": "/^(?:\\+?675)?(?:[7-9]\\d{7})$/" + "regex": "(?:180|[78]\\d{3})\\d{4}|(?:[2-589]\\d|64)\\d{5}" }, "PY": { "dial_code": "+595", "format": "xxx-xxxxxx", - "regex": "/^(?:(?:\\+595|0)9[9876]\\d{7})$/" + "regex": "59\\d{4,6}|9\\d{5,10}|(?:[2-46-8]\\d|5[0-8])\\d{4,7}" }, "PE": { "dial_code": "+51", "format": "xxx-xxx-xxx", - "regex": "/^(?:(?:\\+51)|0)?(?:9\\d{8})$/" + "regex": "(?:[14-8]|9\\d)\\d{7}" }, "PH": { "dial_code": "+63", "format": "xxx-xxxx", - "regex": "/^(?:(?:\\+?63)|0)(?:\\d{10})$/" + "regex": "(?:[2-7]|9\\d)\\d{8}|2\\d{5}|(?:1800|8)\\d{7,9}" }, "PN": { "dial_code": "+64", @@ -888,152 +888,152 @@ "PL": { "dial_code": "+48", "format": "xxx xxx xxx", - "regex": "/^(?:(?:\\+48)?(?:\\s?\\d{3}\\s?\\d{3}\\s?\\d{3}|(?:\\d{2}\\s?){4}\\d{2}|\\d{3}-\\d{3}-\\d{3}))$/" + "regex": "(?:6|8\\d\\d)\\d{7}|[1-9]\\d{6}(?:\\d{2})?|[26]\\d{5}" }, "PT": { "dial_code": "+351", "format": "xxx xxx xxx", - "regex": "/^(?:(?:\\+351)?9(1\\d|2[1-9]|6[12345789]|7[12345789])\\d{7})$/" + "regex": "1693\\d{5}|(?:[26-9]\\d|30)\\d{7}" }, "PR": { "dial_code": "+1", "format": "xxx-xxx-xxxx", - "regex": "/^(?:(?:\\+1)?787|939)\\d{7}$/" + "regex": "(?:[589]\\d\\d|787)\\d{7}" }, "QA": { "dial_code": "+974", "format": "xxxx xxxx", - "regex": "/^(?:\\+?974)?-?33\\d{5}$/" + "regex": "800\\d{4}|(?:2|800)\\d{6}|(?:0080|[3-7])\\d{7}" }, "RE": { "dial_code": "+262", "format": "xxx xx xx xx", - "regex": "/^(?:\\+262)?\\d{9}$/" + "regex": "(?:26|[689]\\d)\\d{7}" }, "RO": { "dial_code": "+40", "format": "xxx xxx xxxx", - "regex": "/^(?:(?:\\+40|0))(?:7[2-8]\\d{7}|21\\d{8})$/" + "regex": "(?:[236-8]\\d|90)\\d{7}|[23]\\d{5}" }, "RU": { "dial_code": "+7", "format": "xxx xxx-xx-xx", - "regex": "/^(?:\\+?7|8)?[ -]?\\(?9\\d{2}\\)?[ -]?\\d{3}[ -]?\\d{2}[ -]?\\d{2}$/" + "regex": "8\\d{13}|[347-9]\\d{9}" }, "RW": { "dial_code": "+250", "format": "xxx xxxxxx", - "regex": "/^(?:(?:\\+250)|(0))\\d{9}$/" + "regex": "(?:06|[27]\\d\\d|[89]00)\\d{6}" }, "BL": { "dial_code": "+590", "format": "xxx xx xx xx", - "regex": "/^(?:\\+590)?(?:\\d{9})$/" + "regex": "590\\d{6}|(?:69|80|9\\d)\\d{7}" }, "SH": { "dial_code": "+290", "format": "xxxx", - "regex": "/^\\+290\\d{4,5}$/" + "regex": "(?:[256]\\d|8)\\d{3}" }, "KN": { "dial_code": "+1", "format": "xxx-xxxx", - "regex": "/^(?:\\+1-869)?\\d{7}$/" + "regex": "(?:[58]\\d\\d|900)\\d{7}" }, "LC": { "dial_code": "+1", "format": "xxx-xxxx", - "regex": "/^(?:\\+1-758)?\\d{7}$/" + "regex": "(?:[58]\\d\\d|758|900)\\d{7}" }, "MF": { "dial_code": "+590", "format": "xxx xx xx xx", - "regex": "/^(?:\\+590)?\\d{9}$/" + "regex": "590\\d{6}|(?:69|80|9\\d)\\d{7}" }, "PM": { "dial_code": "+508", "format": "xxx xxxx", - "regex": "/^(?:\\+508)?\\d{6}$/" + "regex": "[45]\\d{5}|(?:708|80\\d)\\d{6}" }, "VC": { "dial_code": "+1", "format": "xxx-xxxx", - "regex": "/^(?:(?:\\+1)?784)?(?:\\d{3})?\\d{7}$/" + "regex": "(?:[58]\\d\\d|784|900)\\d{7}" }, "WS": { "dial_code": "+685", "format": "xx xxxxx", - "regex": "/^(?:\\+685)?\\d{5}$/" + "regex": "(?:[2-6]|8\\d{5})\\d{4}|[78]\\d{6}|[68]\\d{5}" }, "SM": { "dial_code": "+378", "format": "xxxxx xxxxx", - "regex": "/^(?:(?:\\+378)|(0549|6\\d{4}))\\d{5}$/" + "regex": "(?:0549|[5-7]\\d)\\d{6}" }, "ST": { "dial_code": "+239", "format": "xx xxx xx", - "regex": "/^(?:\\+239)?\\d{7}$/" + "regex": "(?:22|9\\d)\\d{5}" }, "SA": { "dial_code": "+966", "format": "xxx-xxxxxxx", - "regex": "/^(?:\\+?966)?\\s?1?[\\s-]?(?:[45]\\d{2}|5\\d{3})[\\s-]?\\d{4}$/" + "regex": "92\\d{7}|(?:[15]|8\\d)\\d{8}" }, "SN": { "dial_code": "+221", "format": "xx xxx xx xx", - "regex": "/^(?:(?:\\+221)|0)?[3679]\\d{7}$/" + "regex": "(?:[378]\\d|93)\\d{7}" }, "RS": { "dial_code": "+381", "format": "xxx xxxxx", - "regex": "/^(?:(?:\\+381)|0)([0-6]|[7][012345])[0-9]{5,10}$/" + "regex": "38[02-9]\\d{6,9}|6\\d{7,9}|90\\d{4,8}|38\\d{5,6}|(?:7\\d\\d|800)\\d{3,9}|(?:[12]\\d|3[0-79])\\d{5,10}" }, "SC": { "dial_code": "+248", "format": "xx xxxxx", - "regex": "/^(?:(?:\\+248)|\\d{4})\\d{5}$/" + "regex": "800\\d{4}|(?:[249]\\d|64)\\d{5}" }, "SL": { "dial_code": "+232", "format": "xxx-xxxxxx", - "regex": "/^(?:(?:\\+232)|(?:0))?\\d{9}$/" + "regex": "(?:[237-9]\\d|66)\\d{6}" }, "SG": { "dial_code": "+65", "format": "xxxx xxxx", - "regex": "/^(?:(?:\\+65)|(?:\\(\\+65\\))|(?:65))\\d{4}\\d{4}$/" + "regex": "(?:(?:1\\d|8)\\d\\d|7000)\\d{7}|[3689]\\d{7}" }, "SX": { "dial_code": "+1", "format": "xxx-xxxx", - "regex": "/^(?:\\+1-721)?\\d{7}$/" + "regex": "7215\\d{6}|(?:[58]\\d\\d|900)\\d{7}" }, "SK": { "dial_code": "+421", "format": "xxx xxx xxx", - "regex": "/^(?:(?:\\+421))?(0|9[0-8])\\d{8}$/" + "regex": "[2-689]\\d{8}|[2-59]\\d{6}|[2-5]\\d{5}" }, "SI": { "dial_code": "+386", "format": "xx xxxxxx", - "regex": "/^(?:(?:\\+386)|0)?[1-59]\\d{7,8}$/" + "regex": "[1-7]\\d{7}|8\\d{4,7}|90\\d{4,6}" }, "SB": { "dial_code": "+677", "format": "xxxxx", - "regex": "/^(?:\\+677)?\\d{5}$/" + "regex": "[6-9]\\d{6}|[1-6]\\d{4}" }, "SO": { "dial_code": "+252", "format": "xxx xxxxxxx", - "regex": "/^(?:\\+252|0)?[567]\\d{7}$/" + "regex": "[346-9]\\d{8}|[12679]\\d{7}|[1-5]\\d{6}|[1348]\\d{5}" }, "ZA": { "dial_code": "+27", "format": "xxx-xxx-xxxx", - "regex": "/^(?:(?:\\+27)|0)(\\d{9})$/" + "regex": "[1-79]\\d{8}|8\\d{4,9}" }, "GS": { "dial_code": "+500", @@ -1043,137 +1043,137 @@ "SS": { "dial_code": "+211", "format": "xxx xxxx xxx", - "regex": "/^(?:\\+211|0)?[1-9]\\d{7,9}$/" + "regex": "[19]\\d{8}" }, "ES": { "dial_code": "+34", "format": "xxx xxx xxx", - "regex": "/^(?:\\+34)?(?:\\d{9})$/" + "regex": "[5-9]\\d{8}" }, "LK": { "dial_code": "+94", "format": "xx xxx xxxx", - "regex": "/^(?:(?:\\+94)|0)(?:\\d{9})$/" + "regex": "[1-9]\\d{8}" }, "SD": { "dial_code": "+249", "format": "xx xxx xxxx", - "regex": "/^(?:\\+249)?\\d{9}$/" + "regex": "[19]\\d{8}" }, "SR": { "dial_code": "+597", "format": "xxx-xxxx", - "regex": "/^(?:(?:\\+597))\\d{7}$/" + "regex": "(?:[2-5]|68|[78]\\d)\\d{5}" }, "SJ": { "dial_code": "+47", "format": "xxx xx xxx", - "regex": "/^\\+47\\d{8}$/" + "regex": "0\\d{4}|(?:[489]\\d|79)\\d{6}" }, "SE": { "dial_code": "+46", "format": "xxx-xxx xx xx", - "regex": "/^(?:\\+?46|0)\\s?[1-57-9](?:[0-9]\\s?){8}$/" + "regex": "(?:[26]\\d\\d|9)\\d{9}|[1-9]\\d{8}|[1-689]\\d{7}|[1-4689]\\d{6}|2\\d{5}" }, "CH": { "dial_code": "+41", "format": "xxx xxx xxx", - "regex": "/^(?:(?:\\+41|0)(?:\\s*\\(?0\\)?\\s*))?(?:\\d{2}\\s*)?\\d{3}\\s*\\d{2}\\s*\\d{2}$/" + "regex": "8\\d{11}|[2-9]\\d{8}" }, "SY": { "dial_code": "+963", "format": "xx xxxx xxxx", - "regex": "/^(?:\\+963)?\\d{9}$/" + "regex": "[1-39]\\d{8}|[1-5]\\d{7}" }, "TW": { "dial_code": "+886", "format": "xxxx-xxxxxx", - "regex": "/^(?:(?:\\+886)|0)?9\\d{8}$/" + "regex": "[2-689]\\d{8}|7\\d{9,10}|[2-8]\\d{7}|2\\d{6}" }, "TJ": { "dial_code": "+992", "format": "xxx xx xx xx", - "regex": "/^(?:(?:\\+992))(37|55|77)\\d{7}$/" + "regex": "[0-57-9]\\d{8}" }, "TZ": { "dial_code": "+255", "format": "xxx xxx xxxx", - "regex": "/^(?:(?:\\+?255)|0)?[67]\\d{8}$/" + "regex": "(?:[25-8]\\d|41|90)\\d{7}" }, "TH": { "dial_code": "+66", "format": "xxx-xxxxxxx", - "regex": "/^(?:(?:\\+66)|0)\\d{9}$/" + "regex": "(?:001800|[2-57]|[689]\\d)\\d{7}|1\\d{7,9}" }, "TL": { "dial_code": "+670", "format": "xxx-xxxxxxx", - "regex": "/^(?:(?:\\+670)\\s?)?[0-9]{3}\\s?[0-9]{3,4}$/" + "regex": "7\\d{7}|(?:[2-47]\\d|[89]0)\\d{5}" }, "TG": { "dial_code": "+228", "format": "xx xx xx xx", - "regex": "/^(?:(?:\\+228))\\d{8}$/" + "regex": "[279]\\d{7}" }, "TK": { "dial_code": "+690", "format": "xxxx", - "regex": "/^\\+690\\d{4}$/" + "regex": "[2-47]\\d{3,6}" }, "TO": { "dial_code": "+676", "format": "xxxxx", - "regex": "/^(?:\\+676)?\\d{5}$/" + "regex": "(?:0800|(?:[5-8]\\d\\d|999)\\d)\\d{3}|[2-8]\\d{4}" }, "TT": { "dial_code": "+1", "format": "xxx-xxxx", - "regex": "/^(?:(?:\\+?1-868)|\\(?868\\)?)(\\d{7})$/" + "regex": "(?:[58]\\d\\d|900)\\d{7}" }, "TN": { "dial_code": "+216", "format": "xx xxxxxx", - "regex": "/^(?:(?:\\+216)|22|9[1-9])\\d{7}$/" + "regex": "[2-57-9]\\d{7}" }, "TR": { "dial_code": "+90", "format": "xxx xxx xx xx", - "regex": "/^(?:(?:\\+90)|(0))\\s?5\\d{9}$/" + "regex": "4\\d{6}|8\\d{11,12}|(?:[2-58]\\d\\d|900)\\d{7}" }, "TM": { "dial_code": "+993", "format": "x xxx xxx", - "regex": "/^(?:\\+993)?\\d{8}$/" + "regex": "(?:[1-6]\\d|71)\\d{6}" }, "TC": { "dial_code": "+1", "format": "xxx-xxxx", - "regex": "/^(?:\\+1-649)?\\d{7}$/" + "regex": "(?:[58]\\d\\d|649|900)\\d{7}" }, "TV": { "dial_code": "+688", "format": "xxxxx", - "regex": "/^(?:\\+688)?\\d{5}$/" + "regex": "(?:2|7\\d\\d|90)\\d{4}" }, "UG": { "dial_code": "+256", "format": "xxx xxxxxxx", - "regex": "/^(?:(?:\\+256)|0)?[39]\\d{8}$/" + "regex": "800\\d{6}|(?:[29]0|[347]\\d)\\d{7}" }, "UA": { "dial_code": "+380", "format": "xx xxx xx xx", - "regex": "/^(?:(?:\\+380)|(0))?(39|50|63|66|67|68|91|92|93|94|95|96|97|98|99)\\d{7}$/" + "regex": "[89]\\d{9}|[3-9]\\d{8}" }, "AE": { "dial_code": "+971", "format": "xx xxx xxxx", - "regex": "/^(?:\\+?971|0)?(?:2|3|4|6|7|9)\\d{8}$/" + "regex": "(?:[4-7]\\d|9[0-689])\\d{7}|800\\d{2,9}|[2-4679]\\d{7}" }, "GB": { "dial_code": "+44", "format": "xxxx xxx xxx", - "regex": "/^(?:(?:\\+44\\s?|0)7\\d{3}(\\s?\\d{4,})?)$/" + "regex": "[1-357-9]\\d{9}|[18]\\d{8}|8\\d{6}" }, "UM": { "dial_code": "+1", @@ -1183,67 +1183,122 @@ "US": { "dial_code": "+1", "format": "xxx-xxx-xxxx", - "regex": "/^(\\+\\d{1,2}\\s?)?([2-9]{1}\\d{2}[2-9]{1}\\d{6})$/" + "regex": "[2-9]\\d{9}|3\\d{6}" }, "UY": { "dial_code": "+598", "format": "xxx-xxxxx", - "regex": "/^(?:(?:\\+598|0)\\s?(9\\d{3}|2\\d{2}|[4-9]\\d{6}))$/" + "regex": "0004\\d{2,9}|[1249]\\d{7}|(?:[49]\\d|80)\\d{5}" }, "UZ": { "dial_code": "+998", "format": "xxx-xxx-xx-xx", - "regex": "/^(?:\\+?998)?\\s?[3456789]\\d{8}$/" + "regex": "(?:20|33|[5-79]\\d|88)\\d{7}" }, "VU": { "dial_code": "+678", "format": "xx xxxxx", - "regex": "/^(?:\\+678)?\\d{7}$/" + "regex": "[57-9]\\d{6}|(?:[238]\\d|48)\\d{3}" }, "VE": { "dial_code": "+58", "format": "xxxx-xxx-xxxx", - "regex": "/^(?:(?:\\+58)|0)?4\\d{9}$/" + "regex": "[68]00\\d{7}|(?:[24]\\d|[59]0)\\d{8}" }, "VN": { "dial_code": "+84", "format": "xxxx-xxxxxxx", - "regex": "/^(?:(?:\\+84)|0)?[1-9]\\d{8}$/" + "regex": "[12]\\d{9}|[135-9]\\d{8}|[16]\\d{7}|[16-8]\\d{6}" }, "VG": { "dial_code": "+1", "format": "xxx-xxxx", - "regex": "/^(?:\\+1-284)?\\d{7}$/" + "regex": "(?:284|[58]\\d\\d|900)\\d{7}" }, "VI": { "dial_code": "+1", "format": "xxx-xxxx", - "regex": "/^(?:\\+1-340)?\\d{7}$/" + "regex": "[58]\\d{9}|(?:34|90)0\\d{7}" }, "WF": { "dial_code": "+681", "format": "xx xxxx", - "regex": "/^(?:\\+681)?\\d{6}$/" + "regex": "(?:40|72)\\d{4}|8\\d{5}(?:\\d{3})?" }, "EH": { "dial_code": "+212", "format": "xx xx xx xx", - "regex": "/^(?:\\+212)?(?:\\d{9})$/" + "regex": "[5-8]\\d{8}" }, "YE": { "dial_code": "+967", "format": "xxxx-xxxx", - "regex": "/^(?:\\+?967)?(?:\\d{7,8})$/" + "regex": "(?:1|7\\d)\\d{7}|[1-7]\\d{6}" }, "ZM": { "dial_code": "+260", "format": "xxx-xxxxxxx", - "regex": "/^(?:(?:\\+260)|0)?[123456789]\\d{8,9}$/" + "regex": "800\\d{6}|(?:21|63|[79]\\d)\\d{7}" }, "ZW": { "dial_code": "+263", "format": "xx xxx xxxx", - "regex": "/^(?:(?:\\+263)|0)?(?:\\d{9,10})$/" + "regex": "2(?:[0-57-9]\\d{6,8}|6[0-24-9]\\d{6,7})|[38]\\d{9}|[35-8]\\d{8}|[3-6]\\d{7}|[1-689]\\d{6}|[1-3569]\\d{5}|[1356]\\d{4}" + }, + "XK": { + "dial_code": "+383", + "format": "xxx xxx xxx", + "regex": "2\\d{7,8}|3\\d{7,11}|(?:4\\d\\d|[89]00)\\d{5}" + }, + "FW": { + "dial_code": "+590", + "format": "xxx xx xx xx", + "regex": "^\\+590\\s\\d{2}\\s\\d{2}\\s\\d{2}\\s\\d{2}$" + }, + "YT-UNF": { + "dial_code": "+262", + "format": "xxx xx xx xx", + "regex": "^(?:\\+262)?\\d{9}$" + }, + "BQ-BO": { + "dial_code": "+599", + "format": "", + "regex": "" + }, + "BQ-SA": { + "dial_code": "+599", + "format": "", + "regex": "" + }, + "BQ-SE": { + "dial_code": "+599", + "format": "", + "regex": "" + }, + "GB-ENG": { + "dial_code": "+44", + "format": "", + "regex": "" + }, + "GB-NIR": { + "dial_code": "+44", + "format": "", + "regex": "" + }, + "GB-SCT": { + "dial_code": "+44", + "format": "", + "regex": "" + }, + "GB-UKM": { + "dial_code": "+44", + "format": "", + "regex": "" + }, + "GB-WLS": { + "dial_code": "+44", + "format": "", + "regex": "" } } -} \ No newline at end of file +} diff --git a/packages/i18nify-go/modules/phonenumber/phonenumber_test.go b/packages/i18nify-go/modules/phonenumber/phonenumber_test.go index 03a48c2a..4513d6b2 100644 --- a/packages/i18nify-go/modules/phonenumber/phonenumber_test.go +++ b/packages/i18nify-go/modules/phonenumber/phonenumber_test.go @@ -17,7 +17,7 @@ func TestUnmarshalPhoneNumber(t *testing.T) { information := result.CountryTeleInformation["IN"] assert.Equal(t, "+91", information.DialCode, "DialCode field mismatch") assert.Equal(t, "xxxx xxxxxx", information.Format, "Format field mismatch") - assert.Equal(t, "/^(?:(?:\\+|0{0,2})91\\s*[-]?\\s*|[0]?)?[6789]\\d{9}$/", information.Regex, "Regex field mismatch") + assert.Equal(t, "(?:000800|[2-9]\\d\\d)\\d{7}|1\\d{7,12}", information.Regex, "Regex field mismatch") } func TestMarshalPhoneNumber(t *testing.T) { diff --git a/packages/i18nify-js/src/modules/phoneNumber/__tests__/getPhoneNumberWithoutDialCode.test.ts b/packages/i18nify-js/src/modules/phoneNumber/__tests__/getPhoneNumberWithoutDialCode.test.ts new file mode 100644 index 00000000..2a555f83 --- /dev/null +++ b/packages/i18nify-js/src/modules/phoneNumber/__tests__/getPhoneNumberWithoutDialCode.test.ts @@ -0,0 +1,28 @@ +import { getPhoneNumberWithoutDialCode } from '../utils'; + +describe('getPhoneNumberWithoutDialCode', () => { + test('should correctly remove the dial code from a phone number', () => { + const phoneNumber = '+1-800-123-4567'; + const result = getPhoneNumberWithoutDialCode(phoneNumber); + + expect(result).toBe('8001234567'); + }); + + test('should return the phone number unchanged if no dial code is present', () => { + const phoneNumber = '7394 926646'; + const result = getPhoneNumberWithoutDialCode(phoneNumber); + expect(result).toBe('7394926646'); + }); + + test('should handle international phone numbers', () => { + const phoneNumber = '+44 7911 123456'; + const result = getPhoneNumberWithoutDialCode(phoneNumber); + expect(result).toBe('7911123456'); + }); + + test('should process numbers with unusual dial codes', () => { + const phoneNumber = '+91-9876543210'; + const result = getPhoneNumberWithoutDialCode(phoneNumber); + expect(result).toBe('9876543210'); + }); +}); diff --git a/packages/i18nify-js/src/modules/phoneNumber/__tests__/isValidPhoneNumber.test.ts b/packages/i18nify-js/src/modules/phoneNumber/__tests__/isValidPhoneNumber.test.ts index f15f48f5..bce0efc3 100644 --- a/packages/i18nify-js/src/modules/phoneNumber/__tests__/isValidPhoneNumber.test.ts +++ b/packages/i18nify-js/src/modules/phoneNumber/__tests__/isValidPhoneNumber.test.ts @@ -1,57 +1,81 @@ +import PHONE_NUMBERS_JSON from './mocks/phoneNumbers.json'; import { isValidPhoneNumber } from '../index'; +import { CountryCodeType } from '../../types'; +import { PhoneNumbersMockData } from '../types'; describe('isValidPhoneNumber', () => { - const validTestDataSet = [ - { countryCode: 'IN', phoneNumber: '+917394926646' }, - { countryCode: 'MY', phoneNumber: '+60123456789' }, - ]; - - const invalidTestDataSet = [ - { countryCode: 'IN', phoneNumber: '1234' }, - { countryCode: 'MY', phoneNumber: '60123' }, - ]; - - validTestDataSet.forEach((dataset) => { - it(`should validate a valid phone number for ${dataset.countryCode}`, () => { - const isValid = isValidPhoneNumber( - dataset.phoneNumber, - dataset.countryCode as any, - ); - expect(isValid).toBe(true); + describe('standard validity checks', () => { + const validTestDataSet = [ + { countryCode: 'IN', phoneNumber: '+917394926646' }, + { countryCode: 'MY', phoneNumber: '+60123456789' }, + ]; + + const invalidTestDataSet = [ + { countryCode: 'IN', phoneNumber: '1234' }, + { countryCode: 'MY', phoneNumber: '60123' }, + ]; + + validTestDataSet.forEach((dataset) => { + it(`should validate a valid phone number for ${dataset.countryCode}`, () => { + const isValid = isValidPhoneNumber( + dataset.phoneNumber, + dataset.countryCode as any, + ); + expect(isValid).toBe(true); + }); }); - }); - invalidTestDataSet.forEach((dataset) => { - it(`should reject an invalid phone number for ${dataset.countryCode}`, () => { - const isValid = isValidPhoneNumber( - dataset.phoneNumber, - dataset.countryCode as any, - ); + invalidTestDataSet.forEach((dataset) => { + it(`should reject an invalid phone number for ${dataset.countryCode}`, () => { + const isValid = isValidPhoneNumber( + dataset.phoneNumber, + dataset.countryCode as any, + ); + expect(isValid).toBe(false); + }); + }); + + it('should handle a invalid country code and detect it from phone number to validate it', () => { + const phoneNumber = '1234567890'; + const countryCode = 'XYZ'; + const isValid = isValidPhoneNumber(phoneNumber, countryCode as any); expect(isValid).toBe(false); }); - }); - it('should handle a invalid country code and detect it from phone number to validate it', () => { - const phoneNumber = '1234567890'; - const countryCode = 'XYZ'; - const isValid = isValidPhoneNumber(phoneNumber, countryCode as any); - expect(isValid).toBe(false); - }); + it('should handle a missing phoneNumber', () => { + const phoneNumber = ''; + const countryCode = 'MY'; + const isValid = isValidPhoneNumber(phoneNumber, countryCode as any); + expect(isValid).toBe(false); + }); - it('should handle a missing phoneNumber', () => { - const phoneNumber = ''; - const countryCode = 'MY'; - const isValid = isValidPhoneNumber(phoneNumber, countryCode as any); - expect(isValid).toBe(false); + it('should return false if the countryCode is not supported', () => { + const unsupportedCountryCode = 'XXX'; + const phoneNumber = '+1234567890'; + const result = isValidPhoneNumber( + phoneNumber, + unsupportedCountryCode as any, + ); + expect(result).toBe(false); + }); }); - it('should return false if the countryCode is not supported', () => { - const unsupportedCountryCode = 'XXX'; - const phoneNumber = '+1234567890'; - const result = isValidPhoneNumber( - phoneNumber, - unsupportedCountryCode as any, - ); - expect(result).toBe(false); + describe('validation against known data sets from https://fakenumber.in/', () => { + const phoneNumbersData: PhoneNumbersMockData = + PHONE_NUMBERS_JSON as PhoneNumbersMockData; + Object.keys(phoneNumbersData).forEach((countryCode) => { + it(`should match output for ${countryCode}`, () => { + phoneNumbersData[countryCode].forEach( + (data: { PhoneNumber: string; isValid: boolean }) => { + expect( + isValidPhoneNumber( + data.PhoneNumber, + countryCode as CountryCodeType, + ), + ).toBe(data.isValid); + }, + ); + }); + }); }); }); diff --git a/packages/i18nify-js/src/modules/phoneNumber/__tests__/matchesEntirely.test.ts b/packages/i18nify-js/src/modules/phoneNumber/__tests__/matchesEntirely.test.ts new file mode 100644 index 00000000..4ba27dfc --- /dev/null +++ b/packages/i18nify-js/src/modules/phoneNumber/__tests__/matchesEntirely.test.ts @@ -0,0 +1,114 @@ +import {matchesEntirely} from '../utils'; + +describe('matchesEntirely', () => { + test('should return true for exact match', () => { + const text = '12345'; + const regex = '\\d{5}'; + expect(matchesEntirely(text, regex)).toBe(true); + }); + + test('should return false for partial match', () => { + const text = '12345 more text'; + const regex = '\\d{5}'; + expect(matchesEntirely(text, regex)).toBe(false); + }); + + test('should return false for no match', () => { + const text = 'abcde'; + const regex = '\\d{5}'; + expect(matchesEntirely(text, regex)).toBe(false); + }); + + test('should handle empty text input', () => { + const text = ''; + const regex = '\\d{5}'; + expect(matchesEntirely(text, regex)).toBe(false); + }); + + test('should handle empty regex input', () => { + const text = '12345'; + const regex = ''; + expect(matchesEntirely(text, regex)).toBe(false); + }); + + test('should handle both empty text and regex input', () => { + const text = ''; + const regex = ''; + expect(matchesEntirely(text, regex)).toBe(true); // Because an empty string exactly matches an empty pattern + }); + + test('should return true when special characters are involved and matched exactly', () => { + const text = 'abc?*123'; + const regex = 'abc\\?\\*123'; + expect(matchesEntirely(text, regex)).toBe(true); + }); + + + test('should return false for regex that does not cover the entire string', () => { + const text = 'hello 123 world'; + const regex = '\\d{3}'; + expect(matchesEntirely(text, regex)).toBe(false); + }); + + test('should return true for complex pattern matching entire string', () => { + const text = 'Hello, how are you?'; + const regex = '[A-Za-z,\\s?]+'; + expect(matchesEntirely(text, regex)).toBe(true); + }); + + test('should return false when regex pattern is incorrect', () => { + const text = '12345'; + const regex = '[A-Z'; // Missing closing bracket + expect(() => matchesEntirely(text, regex)).toThrow(SyntaxError); + }); + + test('should test for case sensitivity', () => { + const text = 'CaseSensitive'; + const regex = 'casesensitive'; + expect(matchesEntirely(text, regex)).toBe(false); + }); + + test('should return true for matching numbers as strings', () => { + const text = '0123456789'; + const regex = '\\d+'; + expect(matchesEntirely(text, regex)).toBe(true); + }); + + test('should handle unicode characters', () => { + const text = 'こんにちは'; + const regex = 'こんにちは'; + expect(matchesEntirely(text, regex)).toBe(true); + }); + + test('should handle complex unicode patterns', () => { + const text = 'こんにちは123'; + const regex = '\\w+\\d+'; + expect(matchesEntirely(text, regex)).toBe(false); // `\w` does not match Japanese characters by default + }); + + test('should handle newline characters in text', () => { + const text = `line1 +line2`; + const regex = 'line1\\nline2'; + expect(matchesEntirely(text, regex)).toBe(true); + }); + + test('should fail when text contains newline but regex does not account for it', () => { + const text = `line1 +line2`; + const regex = 'line1line2'; + expect(matchesEntirely(text, regex)).toBe(false); + }); + + test('should correctly handle text with leading and trailing whitespaces', () => { + const text = ' trimmed '; + const regex = '\\s*trimmed\\s*'; + expect(matchesEntirely(text, regex)).toBe(true); + }); + + test('should return false if the regex requires more characters than are in text', () => { + const text = 'short'; + const regex = 'shorter'; + expect(matchesEntirely(text, regex)).toBe(false); + }); +}); diff --git a/packages/i18nify-js/src/modules/phoneNumber/__tests__/mocks/phoneNumbers.json b/packages/i18nify-js/src/modules/phoneNumber/__tests__/mocks/phoneNumbers.json new file mode 100644 index 00000000..1e0a5739 --- /dev/null +++ b/packages/i18nify-js/src/modules/phoneNumber/__tests__/mocks/phoneNumbers.json @@ -0,0 +1,3856 @@ +{ + "IN": [ + { + "PhoneNumber": "+91-755-505-9215", + "isValid": true + }, + { + "PhoneNumber": "+91-755-552-2890", + "isValid": true + }, + { + "PhoneNumber": "+91-925-558-7693", + "isValid": true + }, + { + "PhoneNumber": "+91-755-567-0672", + "isValid": true + }, + { + "PhoneNumber": "+91-755-577-0063", + "isValid": true + }, + { + "PhoneNumber": "+91-985-554-3248", + "isValid": true + }, + { + "PhoneNumber": "+91-855-534-7182", + "isValid": true + }, + { + "PhoneNumber": "+91-755-532-4832", + "isValid": true + }, + { + "PhoneNumber": "+91-965-557-2586", + "isValid": true + }, + { + "PhoneNumber": "+91-755-585-0362", + "isValid": true + }, + { + "PhoneNumber": "+91-965-557-7762", + "isValid": true + }, + { + "PhoneNumber": "+91-855-550-9869", + "isValid": true + }, + { + "PhoneNumber": "+91-755-510-7892", + "isValid": true + }, + { + "PhoneNumber": "+91-935-551-9900", + "isValid": true + }, + { + "PhoneNumber": "+91-855-562-4809", + "isValid": true + }, + { + "PhoneNumber": "+91-955-556-1523", + "isValid": true + }, + { + "PhoneNumber": "+91-995-553-1337", + "isValid": true + }, + { + "PhoneNumber": "+91-755-519-2110", + "isValid": true + }, + { + "PhoneNumber": "+91-755-513-7682", + "isValid": true + }, + { + "PhoneNumber": "+91-905-551-5706", + "isValid": true + } + ], + "MY": [ + { + "PhoneNumber": "+60-155-552-6", + "isValid": false + }, + { + "PhoneNumber": "+60-165-552-7", + "isValid": false + }, + { + "PhoneNumber": "+60-135-557-8", + "isValid": false + }, + { + "PhoneNumber": "+60-195-553-2", + "isValid": false + }, + { + "PhoneNumber": "+60-145-555-3", + "isValid": false + }, + { + "PhoneNumber": "+60-135-552-1", + "isValid": false + }, + { + "PhoneNumber": "+60-185-552-6", + "isValid": false + }, + { + "PhoneNumber": "+60-145-554-0", + "isValid": false + }, + { + "PhoneNumber": "+60-165-554-5", + "isValid": false + }, + { + "PhoneNumber": "+60-155-558-6", + "isValid": false + }, + { + "PhoneNumber": "+60-155-553-6", + "isValid": false + }, + { + "PhoneNumber": "+60-185-552-3", + "isValid": false + }, + { + "PhoneNumber": "+60-115-559-1", + "isValid": false + }, + { + "PhoneNumber": "+60-195-559-9", + "isValid": false + }, + { + "PhoneNumber": "+60-155-555-7", + "isValid": false + }, + { + "PhoneNumber": "+60-185-554-3", + "isValid": false + }, + { + "PhoneNumber": "+60-145-550-6", + "isValid": false + }, + { + "PhoneNumber": "+60-185-555-6", + "isValid": false + }, + { + "PhoneNumber": "+60-185-554-4", + "isValid": false + }, + { + "PhoneNumber": "+60-195-559-2", + "isValid": false + } + ], + "SG": [ + { + "PhoneNumber": "+65-855-577-32", + "isValid": true + }, + { + "PhoneNumber": "+65-955-533-60", + "isValid": true + }, + { + "PhoneNumber": "+65-855-502-99", + "isValid": true + }, + { + "PhoneNumber": "+65-855-507-79", + "isValid": true + }, + { + "PhoneNumber": "+65-855-592-65", + "isValid": true + }, + { + "PhoneNumber": "+65-955-561-07", + "isValid": true + }, + { + "PhoneNumber": "+65-855-548-86", + "isValid": true + }, + { + "PhoneNumber": "+65-855-535-48", + "isValid": true + }, + { + "PhoneNumber": "+65-955-540-66", + "isValid": true + }, + { + "PhoneNumber": "+65-855-528-91", + "isValid": true + }, + { + "PhoneNumber": "+65-855-520-53", + "isValid": true + }, + { + "PhoneNumber": "+65-955-555-07", + "isValid": true + }, + { + "PhoneNumber": "+65-955-551-83", + "isValid": true + }, + { + "PhoneNumber": "+65-855-552-83", + "isValid": true + }, + { + "PhoneNumber": "+65-855-508-97", + "isValid": true + }, + { + "PhoneNumber": "+65-855-574-99", + "isValid": true + }, + { + "PhoneNumber": "+65-855-531-56", + "isValid": true + }, + { + "PhoneNumber": "+65-855-588-74", + "isValid": true + }, + { + "PhoneNumber": "+65-955-508-63", + "isValid": true + }, + { + "PhoneNumber": "+65-855-584-41", + "isValid": true + } + ], + "US": [ + { + "PhoneNumber": "+1-555-848-8036", + "isValid": true + }, + { + "PhoneNumber": "+1-555-672-6057", + "isValid": true + }, + { + "PhoneNumber": "+1-555-587-0190", + "isValid": true + }, + { + "PhoneNumber": "+1-555-666-4790", + "isValid": true + }, + { + "PhoneNumber": "+1-555-380-8643", + "isValid": true + }, + { + "PhoneNumber": "+1-555-533-2242", + "isValid": true + }, + { + "PhoneNumber": "+1-555-129-3700", + "isValid": true + }, + { + "PhoneNumber": "+1-555-347-8037", + "isValid": true + }, + { + "PhoneNumber": "+1-555-776-5722", + "isValid": true + }, + { + "PhoneNumber": "+1-555-640-5928", + "isValid": true + }, + { + "PhoneNumber": "+1-555-794-2784", + "isValid": true + }, + { + "PhoneNumber": "+1-555-051-4977", + "isValid": true + }, + { + "PhoneNumber": "+1-555-713-0974", + "isValid": true + }, + { + "PhoneNumber": "+1-555-271-0921", + "isValid": true + }, + { + "PhoneNumber": "+1-555-731-6184", + "isValid": true + }, + { + "PhoneNumber": "+1-555-977-7454", + "isValid": true + }, + { + "PhoneNumber": "+1-555-834-4259", + "isValid": true + }, + { + "PhoneNumber": "+1-555-343-6668", + "isValid": true + }, + { + "PhoneNumber": "+1-555-336-8303", + "isValid": true + }, + { + "PhoneNumber": "+1-555-449-4842", + "isValid": true + } + ], + "ID": [ + { + "PhoneNumber": "+62-899-555-780", + "isValid": true + }, + { + "PhoneNumber": "+62-899-555-654", + "isValid": true + }, + { + "PhoneNumber": "+62-838-555-555", + "isValid": true + }, + { + "PhoneNumber": "+62-838-555-732", + "isValid": true + }, + { + "PhoneNumber": "+62-899-555-157", + "isValid": true + }, + { + "PhoneNumber": "+62-838-555-205", + "isValid": true + }, + { + "PhoneNumber": "+62-899-555-444", + "isValid": true + }, + { + "PhoneNumber": "+62-838-555-650", + "isValid": true + }, + { + "PhoneNumber": "+62-813-555-463", + "isValid": true + }, + { + "PhoneNumber": "+62-897-555-481", + "isValid": true + }, + { + "PhoneNumber": "+62-858-555-946", + "isValid": true + }, + { + "PhoneNumber": "+62-856-555-271", + "isValid": true + }, + { + "PhoneNumber": "+62-838-555-579", + "isValid": true + }, + { + "PhoneNumber": "+62-838-555-676", + "isValid": true + }, + { + "PhoneNumber": "+62-857-555-724", + "isValid": true + }, + { + "PhoneNumber": "+62-878-555-917", + "isValid": true + }, + { + "PhoneNumber": "+62-859-555-249", + "isValid": true + }, + { + "PhoneNumber": "+62-838-555-689", + "isValid": true + }, + { + "PhoneNumber": "+62-817-555-753", + "isValid": true + }, + { + "PhoneNumber": "+62-878-555-864", + "isValid": true + } + ], + "AF": [ + { + "PhoneNumber": "+93-765-558-5785", + "isValid": false + }, + { + "PhoneNumber": "+93-755-555-9318", + "isValid": false + }, + { + "PhoneNumber": "+93-795-554-26", + "isValid": false + }, + { + "PhoneNumber": "+93-795-558-866", + "isValid": true + }, + { + "PhoneNumber": "+93-705-554-27", + "isValid": false + }, + { + "PhoneNumber": "+93-715-556-46", + "isValid": false + }, + { + "PhoneNumber": "+93-755-553-0519", + "isValid": false + }, + { + "PhoneNumber": "+93-785-557-991", + "isValid": true + }, + { + "PhoneNumber": "+93-715-559-3435", + "isValid": false + }, + { + "PhoneNumber": "+93-705-556-27", + "isValid": false + }, + { + "PhoneNumber": "+93-725-556-57", + "isValid": false + }, + { + "PhoneNumber": "+93-795-554-141", + "isValid": true + }, + { + "PhoneNumber": "+93-755-558-73", + "isValid": false + }, + { + "PhoneNumber": "+93-785-556-55", + "isValid": false + }, + { + "PhoneNumber": "+93-715-557-708", + "isValid": true + }, + { + "PhoneNumber": "+93-755-551-35", + "isValid": false + }, + { + "PhoneNumber": "+93-705-552-2743", + "isValid": false + }, + { + "PhoneNumber": "+93-795-555-285", + "isValid": true + }, + { + "PhoneNumber": "+93-775-558-0160", + "isValid": false + }, + { + "PhoneNumber": "+93-775-555-0510", + "isValid": false + } + ], + "AX": [ + { + "PhoneNumber": "+358-457-555-9680", + "isValid": true + }, + { + "PhoneNumber": "+358-457-555-7615", + "isValid": true + }, + { + "PhoneNumber": "+358-457-555-4259", + "isValid": true + }, + { + "PhoneNumber": "+358-457-555-7155", + "isValid": true + }, + { + "PhoneNumber": "+358-457-555-9758", + "isValid": true + }, + { + "PhoneNumber": "+358-457-555-6303", + "isValid": true + }, + { + "PhoneNumber": "+358-457-555-3376", + "isValid": true + }, + { + "PhoneNumber": "+358-457-555-3765", + "isValid": true + }, + { + "PhoneNumber": "+358-457-555-5505", + "isValid": true + }, + { + "PhoneNumber": "+358-457-555-0137", + "isValid": true + }, + { + "PhoneNumber": "+358-457-555-5656", + "isValid": true + }, + { + "PhoneNumber": "+358-457-555-8427", + "isValid": true + }, + { + "PhoneNumber": "+358-457-555-8589", + "isValid": true + }, + { + "PhoneNumber": "+358-457-555-5363", + "isValid": true + }, + { + "PhoneNumber": "+358-457-555-0499", + "isValid": true + }, + { + "PhoneNumber": "+358-457-555-5598", + "isValid": true + }, + { + "PhoneNumber": "+358-457-555-0141", + "isValid": true + }, + { + "PhoneNumber": "+358-457-555-8215", + "isValid": true + }, + { + "PhoneNumber": "+358-457-555-4341", + "isValid": true + }, + { + "PhoneNumber": "+358-457-555-2105", + "isValid": true + } + ], + "AL": [ + { + "PhoneNumber": "+355-555-537-1", + "isValid": false + }, + { + "PhoneNumber": "+355-555-571-7", + "isValid": false + }, + { + "PhoneNumber": "+355-675-550-5", + "isValid": false + }, + { + "PhoneNumber": "+355-665-556-4", + "isValid": false + }, + { + "PhoneNumber": "+355-755-535-5", + "isValid": false + }, + { + "PhoneNumber": "+355-685-555-8", + "isValid": false + }, + { + "PhoneNumber": "+355-675-556-5", + "isValid": false + }, + { + "PhoneNumber": "+355-655-597-8", + "isValid": false + }, + { + "PhoneNumber": "+355-555-520-2", + "isValid": false + }, + { + "PhoneNumber": "+355-555-544-3", + "isValid": false + }, + { + "PhoneNumber": "+355-755-572-7", + "isValid": false + }, + { + "PhoneNumber": "+355-655-536-7", + "isValid": false + }, + { + "PhoneNumber": "+355-655-569-8", + "isValid": false + }, + { + "PhoneNumber": "+355-755-551-4", + "isValid": false + }, + { + "PhoneNumber": "+355-755-561-2", + "isValid": false + }, + { + "PhoneNumber": "+355-685-554-9", + "isValid": false + }, + { + "PhoneNumber": "+355-655-534-9", + "isValid": false + }, + { + "PhoneNumber": "+355-695-551-6", + "isValid": false + }, + { + "PhoneNumber": "+355-655-554-4", + "isValid": false + }, + { + "PhoneNumber": "+355-655-594-7", + "isValid": false + } + ], + "DZ": [ + { + "PhoneNumber": "+213-655-551-425", + "isValid": true + }, + { + "PhoneNumber": "+213-655-521-324", + "isValid": true + }, + { + "PhoneNumber": "+213-755-526-432", + "isValid": true + }, + { + "PhoneNumber": "+213-555-598-554", + "isValid": true + }, + { + "PhoneNumber": "+213-555-522-903", + "isValid": true + }, + { + "PhoneNumber": "+213-655-521-984", + "isValid": true + }, + { + "PhoneNumber": "+213-555-500-533", + "isValid": true + }, + { + "PhoneNumber": "+213-655-570-648", + "isValid": true + }, + { + "PhoneNumber": "+213-555-576-168", + "isValid": true + }, + { + "PhoneNumber": "+213-555-509-606", + "isValid": true + }, + { + "PhoneNumber": "+213-755-525-589", + "isValid": true + }, + { + "PhoneNumber": "+213-555-574-035", + "isValid": true + }, + { + "PhoneNumber": "+213-655-527-053", + "isValid": true + }, + { + "PhoneNumber": "+213-655-506-266", + "isValid": true + }, + { + "PhoneNumber": "+213-555-599-154", + "isValid": true + }, + { + "PhoneNumber": "+213-555-517-484", + "isValid": true + }, + { + "PhoneNumber": "+213-755-567-381", + "isValid": true + }, + { + "PhoneNumber": "+213-555-500-896", + "isValid": true + }, + { + "PhoneNumber": "+213-555-501-453", + "isValid": true + }, + { + "PhoneNumber": "+213-655-557-652", + "isValid": true + } + ], + "AS": [ + { + "PhoneNumber": "+1-684-555-3955", + "isValid": true + }, + { + "PhoneNumber": "+1-684-555-4354", + "isValid": true + }, + { + "PhoneNumber": "+1-684-555-8559", + "isValid": true + }, + { + "PhoneNumber": "+1-684-555-3791", + "isValid": true + }, + { + "PhoneNumber": "+1-684-555-6737", + "isValid": true + }, + { + "PhoneNumber": "+1-684-555-6450", + "isValid": true + }, + { + "PhoneNumber": "+1-684-555-1008", + "isValid": true + }, + { + "PhoneNumber": "+1-684-555-6287", + "isValid": true + }, + { + "PhoneNumber": "+1-684-555-2501", + "isValid": true + }, + { + "PhoneNumber": "+1-684-555-1889", + "isValid": true + }, + { + "PhoneNumber": "+1-684-555-9444", + "isValid": true + }, + { + "PhoneNumber": "+1-684-555-6895", + "isValid": true + }, + { + "PhoneNumber": "+1-684-555-4060", + "isValid": true + }, + { + "PhoneNumber": "+1-684-555-8025", + "isValid": true + }, + { + "PhoneNumber": "+1-684-555-4238", + "isValid": true + }, + { + "PhoneNumber": "+1-684-555-3625", + "isValid": true + }, + { + "PhoneNumber": "+1-684-555-9396", + "isValid": true + }, + { + "PhoneNumber": "+1-684-555-0310", + "isValid": true + }, + { + "PhoneNumber": "+1-684-555-0935", + "isValid": true + }, + { + "PhoneNumber": "+1-684-555-4158", + "isValid": true + } + ], + "AD": [ + { + "PhoneNumber": "+376-355-546-8423", + "isValid": false + }, + { + "PhoneNumber": "+376-355-542-09", + "isValid": false + }, + { + "PhoneNumber": "+376-355-553-0496", + "isValid": false + }, + { + "PhoneNumber": "+376-355-517-41", + "isValid": false + }, + { + "PhoneNumber": "+376-355-500-918", + "isValid": false + }, + { + "PhoneNumber": "+376-355-509-78", + "isValid": false + }, + { + "PhoneNumber": "+376-355-574-65", + "isValid": false + }, + { + "PhoneNumber": "+376-355-540-9219", + "isValid": false + }, + { + "PhoneNumber": "+376-355-589-2947", + "isValid": false + }, + { + "PhoneNumber": "+376-355-503-12", + "isValid": false + }, + { + "PhoneNumber": "+376-355-561-0145", + "isValid": false + }, + { + "PhoneNumber": "+376-355-542-75", + "isValid": false + }, + { + "PhoneNumber": "+376-355-567-35", + "isValid": false + }, + { + "PhoneNumber": "+376-355-534-1337", + "isValid": false + }, + { + "PhoneNumber": "+376-355-500-0934", + "isValid": false + }, + { + "PhoneNumber": "+376-355-589-1122", + "isValid": false + }, + { + "PhoneNumber": "+376-355-505-09", + "isValid": false + }, + { + "PhoneNumber": "+376-355-527-776", + "isValid": false + }, + { + "PhoneNumber": "+376-355-553-4145", + "isValid": false + }, + { + "PhoneNumber": "+376-355-503-992", + "isValid": false + } + ], + "AO": [ + { + "PhoneNumber": "+244-925-558-8347", + "isValid": false + }, + { + "PhoneNumber": "+244-925-558-85", + "isValid": false + }, + { + "PhoneNumber": "+244-925-555-53", + "isValid": false + }, + { + "PhoneNumber": "+244-915-551-836", + "isValid": true + }, + { + "PhoneNumber": "+244-935-556-78", + "isValid": false + }, + { + "PhoneNumber": "+244-925-553-0663", + "isValid": false + }, + { + "PhoneNumber": "+244-915-552-3754", + "isValid": false + }, + { + "PhoneNumber": "+244-915-559-736", + "isValid": true + }, + { + "PhoneNumber": "+244-935-555-717", + "isValid": true + }, + { + "PhoneNumber": "+244-925-552-32", + "isValid": false + }, + { + "PhoneNumber": "+244-925-557-462", + "isValid": true + }, + { + "PhoneNumber": "+244-915-558-7914", + "isValid": false + }, + { + "PhoneNumber": "+244-915-552-00", + "isValid": false + }, + { + "PhoneNumber": "+244-935-559-6324", + "isValid": false + }, + { + "PhoneNumber": "+244-935-552-7020", + "isValid": false + }, + { + "PhoneNumber": "+244-915-550-0131", + "isValid": false + }, + { + "PhoneNumber": "+244-935-551-400", + "isValid": true + }, + { + "PhoneNumber": "+244-915-557-900", + "isValid": true + }, + { + "PhoneNumber": "+244-915-554-5544", + "isValid": false + }, + { + "PhoneNumber": "+244-915-551-8685", + "isValid": false + } + ], + "AI": [ + { + "PhoneNumber": "+1-264-555-6534", + "isValid": true + }, + { + "PhoneNumber": "+1-264-555-0146", + "isValid": true + }, + { + "PhoneNumber": "+1-264-555-1603", + "isValid": true + }, + { + "PhoneNumber": "+1-264-555-0721", + "isValid": true + }, + { + "PhoneNumber": "+1-264-555-9595", + "isValid": true + }, + { + "PhoneNumber": "+1-264-555-3090", + "isValid": true + }, + { + "PhoneNumber": "+1-264-555-5859", + "isValid": true + }, + { + "PhoneNumber": "+1-264-555-4783", + "isValid": true + }, + { + "PhoneNumber": "+1-264-555-9432", + "isValid": true + }, + { + "PhoneNumber": "+1-264-555-2943", + "isValid": true + }, + { + "PhoneNumber": "+1-264-555-8102", + "isValid": true + }, + { + "PhoneNumber": "+1-264-555-6005", + "isValid": true + }, + { + "PhoneNumber": "+1-264-555-5694", + "isValid": true + }, + { + "PhoneNumber": "+1-264-555-9356", + "isValid": true + }, + { + "PhoneNumber": "+1-264-555-3805", + "isValid": true + }, + { + "PhoneNumber": "+1-264-555-7572", + "isValid": true + }, + { + "PhoneNumber": "+1-264-555-6718", + "isValid": true + }, + { + "PhoneNumber": "+1-264-555-7642", + "isValid": true + }, + { + "PhoneNumber": "+1-264-555-3928", + "isValid": true + }, + { + "PhoneNumber": "+1-264-555-3638", + "isValid": true + } + ], + "AG": [ + { + "PhoneNumber": "+1-268-555-4249", + "isValid": true + }, + { + "PhoneNumber": "+1-268-555-2047", + "isValid": true + }, + { + "PhoneNumber": "+1-268-555-9798", + "isValid": true + }, + { + "PhoneNumber": "+1-268-555-0698", + "isValid": true + }, + { + "PhoneNumber": "+1-268-555-7144", + "isValid": true + }, + { + "PhoneNumber": "+1-268-555-3547", + "isValid": true + }, + { + "PhoneNumber": "+1-268-555-6991", + "isValid": true + }, + { + "PhoneNumber": "+1-268-555-7940", + "isValid": true + }, + { + "PhoneNumber": "+1-268-555-5469", + "isValid": true + }, + { + "PhoneNumber": "+1-268-555-7135", + "isValid": true + }, + { + "PhoneNumber": "+1-268-555-9102", + "isValid": true + }, + { + "PhoneNumber": "+1-268-555-5679", + "isValid": true + }, + { + "PhoneNumber": "+1-268-555-7382", + "isValid": true + }, + { + "PhoneNumber": "+1-268-555-5627", + "isValid": true + }, + { + "PhoneNumber": "+1-268-555-6042", + "isValid": true + }, + { + "PhoneNumber": "+1-268-555-1482", + "isValid": true + }, + { + "PhoneNumber": "+1-268-555-2092", + "isValid": true + }, + { + "PhoneNumber": "+1-268-555-0829", + "isValid": true + }, + { + "PhoneNumber": "+1-268-555-9825", + "isValid": true + }, + { + "PhoneNumber": "+1-268-555-5669", + "isValid": true + } + ], + "AR": [ + { + "PhoneNumber": "+54-955-551-46", + "isValid": false + }, + { + "PhoneNumber": "+54-955-590-7786", + "isValid": false + }, + { + "PhoneNumber": "+54-155-555-35", + "isValid": false + }, + { + "PhoneNumber": "+54-155-552-9270", + "isValid": false + }, + { + "PhoneNumber": "+54-955-551-3787", + "isValid": false + }, + { + "PhoneNumber": "+54-155-551-690", + "isValid": false + }, + { + "PhoneNumber": "+54-155-556-8340", + "isValid": false + }, + { + "PhoneNumber": "+54-955-520-774", + "isValid": false + }, + { + "PhoneNumber": "+54-155-553-6474", + "isValid": false + }, + { + "PhoneNumber": "+54-955-544-748", + "isValid": false + }, + { + "PhoneNumber": "+54-155-559-151", + "isValid": false + }, + { + "PhoneNumber": "+54-155-555-3556", + "isValid": false + }, + { + "PhoneNumber": "+54-155-551-729", + "isValid": false + }, + { + "PhoneNumber": "+54-955-591-249", + "isValid": false + }, + { + "PhoneNumber": "+54-955-599-989", + "isValid": false + }, + { + "PhoneNumber": "+54-155-555-2044", + "isValid": false + }, + { + "PhoneNumber": "+54-155-553-0996", + "isValid": false + }, + { + "PhoneNumber": "+54-955-563-89", + "isValid": false + }, + { + "PhoneNumber": "+54-955-585-929", + "isValid": false + }, + { + "PhoneNumber": "+54-955-546-973", + "isValid": false + } + ], + "AM": [ + { + "PhoneNumber": "+374-915-553", + "isValid": false + }, + { + "PhoneNumber": "+374-555-551", + "isValid": false + }, + { + "PhoneNumber": "+374-915-554", + "isValid": false + }, + { + "PhoneNumber": "+374-445-556", + "isValid": false + }, + { + "PhoneNumber": "+374-415-557", + "isValid": false + }, + { + "PhoneNumber": "+374-945-559", + "isValid": false + }, + { + "PhoneNumber": "+374-435-557", + "isValid": false + }, + { + "PhoneNumber": "+374-555-550", + "isValid": false + }, + { + "PhoneNumber": "+374-915-558", + "isValid": false + }, + { + "PhoneNumber": "+374-915-556", + "isValid": false + }, + { + "PhoneNumber": "+374-985-558", + "isValid": false + }, + { + "PhoneNumber": "+374-415-550", + "isValid": false + }, + { + "PhoneNumber": "+374-445-555", + "isValid": false + }, + { + "PhoneNumber": "+374-775-557", + "isValid": false + }, + { + "PhoneNumber": "+374-445-556", + "isValid": false + }, + { + "PhoneNumber": "+374-995-551", + "isValid": false + }, + { + "PhoneNumber": "+374-555-557", + "isValid": false + }, + { + "PhoneNumber": "+374-775-552", + "isValid": false + }, + { + "PhoneNumber": "+374-775-559", + "isValid": false + }, + { + "PhoneNumber": "+374-975-552", + "isValid": false + } + ], + "AW": [ + { + "PhoneNumber": "+297-555-878-7885", + "isValid": false + }, + { + "PhoneNumber": "+297-555-007-29", + "isValid": false + }, + { + "PhoneNumber": "+297-555-112-5212", + "isValid": false + }, + { + "PhoneNumber": "+297-555-426-685", + "isValid": false + }, + { + "PhoneNumber": "+297-555-990-45", + "isValid": false + }, + { + "PhoneNumber": "+297-555-764-992", + "isValid": false + }, + { + "PhoneNumber": "+297-555-731-00", + "isValid": false + }, + { + "PhoneNumber": "+297-555-918-903", + "isValid": false + }, + { + "PhoneNumber": "+297-555-777-222", + "isValid": false + }, + { + "PhoneNumber": "+297-555-785-616", + "isValid": false + }, + { + "PhoneNumber": "+297-555-710-86", + "isValid": false + }, + { + "PhoneNumber": "+297-555-373-564", + "isValid": false + }, + { + "PhoneNumber": "+297-555-092-155", + "isValid": false + }, + { + "PhoneNumber": "+297-555-546-95", + "isValid": false + }, + { + "PhoneNumber": "+297-555-538-752", + "isValid": false + }, + { + "PhoneNumber": "+297-555-930-497", + "isValid": false + }, + { + "PhoneNumber": "+297-555-884-265", + "isValid": false + }, + { + "PhoneNumber": "+297-555-029-06", + "isValid": false + }, + { + "PhoneNumber": "+297-555-967-3143", + "isValid": false + }, + { + "PhoneNumber": "+297-555-608-12", + "isValid": false + } + ], + "AU": [ + { + "PhoneNumber": "+61-455-559-408", + "isValid": true + }, + { + "PhoneNumber": "+61-455-553-514", + "isValid": true + }, + { + "PhoneNumber": "+61-455-557-131", + "isValid": true + }, + { + "PhoneNumber": "+61-455-562-931", + "isValid": true + }, + { + "PhoneNumber": "+61-455-534-404", + "isValid": true + }, + { + "PhoneNumber": "+61-455-527-630", + "isValid": true + }, + { + "PhoneNumber": "+61-455-535-163", + "isValid": true + }, + { + "PhoneNumber": "+61-455-562-225", + "isValid": true + }, + { + "PhoneNumber": "+61-455-530-698", + "isValid": true + }, + { + "PhoneNumber": "+61-455-595-220", + "isValid": true + }, + { + "PhoneNumber": "+61-455-575-939", + "isValid": true + }, + { + "PhoneNumber": "+61-455-552-051", + "isValid": true + }, + { + "PhoneNumber": "+61-455-571-072", + "isValid": true + }, + { + "PhoneNumber": "+61-455-512-511", + "isValid": true + }, + { + "PhoneNumber": "+61-455-513-643", + "isValid": true + }, + { + "PhoneNumber": "+61-455-505-644", + "isValid": true + }, + { + "PhoneNumber": "+61-455-564-762", + "isValid": true + }, + { + "PhoneNumber": "+61-455-531-763", + "isValid": true + }, + { + "PhoneNumber": "+61-455-510-215", + "isValid": true + }, + { + "PhoneNumber": "+61-455-564-735", + "isValid": true + } + ], + "AT": [ + { + "PhoneNumber": "+43-688-555-1930", + "isValid": true + }, + { + "PhoneNumber": "+43-650-555-6072", + "isValid": true + }, + { + "PhoneNumber": "+43-681-555-14986", + "isValid": true + }, + { + "PhoneNumber": "+43-677-555-5981", + "isValid": true + }, + { + "PhoneNumber": "+43-688-555-01947", + "isValid": true + }, + { + "PhoneNumber": "+43-650-555-6595", + "isValid": true + }, + { + "PhoneNumber": "+43-676-555-38740", + "isValid": true + }, + { + "PhoneNumber": "+43-650-555-3178", + "isValid": true + }, + { + "PhoneNumber": "+43-650-555-5696", + "isValid": true + }, + { + "PhoneNumber": "+43-660-555-69158", + "isValid": true + }, + { + "PhoneNumber": "+43-664-555-9578", + "isValid": true + }, + { + "PhoneNumber": "+43-677-555-70899", + "isValid": true + }, + { + "PhoneNumber": "+43-676-555-03494", + "isValid": true + }, + { + "PhoneNumber": "+43-699-555-0275", + "isValid": true + }, + { + "PhoneNumber": "+43-650-555-39194", + "isValid": true + }, + { + "PhoneNumber": "+43-650-555-02172", + "isValid": true + }, + { + "PhoneNumber": "+43-677-555-1119", + "isValid": true + }, + { + "PhoneNumber": "+43-650-555-38694", + "isValid": true + }, + { + "PhoneNumber": "+43-676-555-71876", + "isValid": true + }, + { + "PhoneNumber": "+43-681-555-5741", + "isValid": true + } + ], + "AZ": [ + { + "PhoneNumber": "+994-775-554-679", + "isValid": true + }, + { + "PhoneNumber": "+994-405-559-828", + "isValid": true + }, + { + "PhoneNumber": "+994-405-554-14", + "isValid": false + }, + { + "PhoneNumber": "+994-555-552-3346", + "isValid": false + }, + { + "PhoneNumber": "+994-775-557-2084", + "isValid": false + }, + { + "PhoneNumber": "+994-515-555-64", + "isValid": false + }, + { + "PhoneNumber": "+994-775-558-9673", + "isValid": false + }, + { + "PhoneNumber": "+994-775-550-3635", + "isValid": false + }, + { + "PhoneNumber": "+994-555-552-192", + "isValid": true + }, + { + "PhoneNumber": "+994-515-556-34", + "isValid": false + }, + { + "PhoneNumber": "+994-555-554-845", + "isValid": true + }, + { + "PhoneNumber": "+994-555-559-008", + "isValid": true + }, + { + "PhoneNumber": "+994-515-552-370", + "isValid": true + }, + { + "PhoneNumber": "+994-775-558-90", + "isValid": false + }, + { + "PhoneNumber": "+994-555-558-674", + "isValid": true + }, + { + "PhoneNumber": "+994-705-554-216", + "isValid": true + }, + { + "PhoneNumber": "+994-555-558-8467", + "isValid": false + }, + { + "PhoneNumber": "+994-515-551-0325", + "isValid": false + }, + { + "PhoneNumber": "+994-705-556-385", + "isValid": true + }, + { + "PhoneNumber": "+994-405-550-9405", + "isValid": false + } + ], + "BS": [ + { + "PhoneNumber": "+1-242-355-5518", + "isValid": true + }, + { + "PhoneNumber": "+1-242-455-5515", + "isValid": true + }, + { + "PhoneNumber": "+1-242-455-5508", + "isValid": true + }, + { + "PhoneNumber": "+1-242-355-5567", + "isValid": true + }, + { + "PhoneNumber": "+1-242-555-5521", + "isValid": true + }, + { + "PhoneNumber": "+1-242-555-5548", + "isValid": true + }, + { + "PhoneNumber": "+1-242-555-5529", + "isValid": true + }, + { + "PhoneNumber": "+1-242-555-5598", + "isValid": true + }, + { + "PhoneNumber": "+1-242-455-5531", + "isValid": true + }, + { + "PhoneNumber": "+1-242-355-5503", + "isValid": true + }, + { + "PhoneNumber": "+1-242-355-5574", + "isValid": true + }, + { + "PhoneNumber": "+1-242-555-5526", + "isValid": true + }, + { + "PhoneNumber": "+1-242-455-5576", + "isValid": true + }, + { + "PhoneNumber": "+1-242-355-5562", + "isValid": true + }, + { + "PhoneNumber": "+1-242-455-5584", + "isValid": true + }, + { + "PhoneNumber": "+1-242-455-5506", + "isValid": true + }, + { + "PhoneNumber": "+1-242-555-5511", + "isValid": true + }, + { + "PhoneNumber": "+1-242-455-5559", + "isValid": true + }, + { + "PhoneNumber": "+1-242-355-5568", + "isValid": true + }, + { + "PhoneNumber": "+1-242-555-5542", + "isValid": true + } + ], + "BH": [ + { + "PhoneNumber": "+973-388-555-73", + "isValid": true + }, + { + "PhoneNumber": "+973-384-555-61", + "isValid": true + }, + { + "PhoneNumber": "+973-355-555-24", + "isValid": true + }, + { + "PhoneNumber": "+973-377-555-77", + "isValid": true + }, + { + "PhoneNumber": "+973-315-550-65", + "isValid": true + }, + { + "PhoneNumber": "+973-383-555-40", + "isValid": true + }, + { + "PhoneNumber": "+973-666-555-31", + "isValid": true + }, + { + "PhoneNumber": "+973-335-556-78", + "isValid": true + }, + { + "PhoneNumber": "+973-377-555-20", + "isValid": true + }, + { + "PhoneNumber": "+973-315-556-15", + "isValid": true + }, + { + "PhoneNumber": "+973-388-555-94", + "isValid": true + }, + { + "PhoneNumber": "+973-315-554-70", + "isValid": true + }, + { + "PhoneNumber": "+973-322-555-63", + "isValid": true + }, + { + "PhoneNumber": "+973-383-555-32", + "isValid": true + }, + { + "PhoneNumber": "+973-663-555-45", + "isValid": true + }, + { + "PhoneNumber": "+973-395-552-72", + "isValid": true + }, + { + "PhoneNumber": "+973-353-555-61", + "isValid": true + }, + { + "PhoneNumber": "+973-663-555-25", + "isValid": true + }, + { + "PhoneNumber": "+973-377-555-38", + "isValid": true + }, + { + "PhoneNumber": "+973-384-555-51", + "isValid": true + } + ], + "BD": [ + { + "PhoneNumber": "+880-165-559-4839", + "isValid": true + }, + { + "PhoneNumber": "+880-115-557-6200", + "isValid": true + }, + { + "PhoneNumber": "+880-115-554-8779", + "isValid": true + }, + { + "PhoneNumber": "+880-155-555-6823", + "isValid": true + }, + { + "PhoneNumber": "+880-165-556-5910", + "isValid": true + }, + { + "PhoneNumber": "+880-115-556-8517", + "isValid": true + }, + { + "PhoneNumber": "+880-155-551-8024", + "isValid": true + }, + { + "PhoneNumber": "+880-155-559-4486", + "isValid": true + }, + { + "PhoneNumber": "+880-185-557-5867", + "isValid": true + }, + { + "PhoneNumber": "+880-165-558-9304", + "isValid": true + }, + { + "PhoneNumber": "+880-175-557-3819", + "isValid": true + }, + { + "PhoneNumber": "+880-175-554-5294", + "isValid": true + }, + { + "PhoneNumber": "+880-115-550-5175", + "isValid": true + }, + { + "PhoneNumber": "+880-115-554-7826", + "isValid": true + }, + { + "PhoneNumber": "+880-195-556-1798", + "isValid": true + }, + { + "PhoneNumber": "+880-115-559-7082", + "isValid": true + }, + { + "PhoneNumber": "+880-175-557-1733", + "isValid": true + }, + { + "PhoneNumber": "+880-115-551-9029", + "isValid": true + }, + { + "PhoneNumber": "+880-175-556-3503", + "isValid": true + }, + { + "PhoneNumber": "+880-195-554-3812", + "isValid": true + } + ], + "BB": [ + { + "PhoneNumber": "+1-246-555-2839", + "isValid": true + }, + { + "PhoneNumber": "+1-246-555-6726", + "isValid": true + }, + { + "PhoneNumber": "+1-246-555-6406", + "isValid": true + }, + { + "PhoneNumber": "+1-246-555-2492", + "isValid": true + }, + { + "PhoneNumber": "+1-246-555-3155", + "isValid": true + }, + { + "PhoneNumber": "+1-246-555-7593", + "isValid": true + }, + { + "PhoneNumber": "+1-246-555-9777", + "isValid": true + }, + { + "PhoneNumber": "+1-246-555-7752", + "isValid": true + }, + { + "PhoneNumber": "+1-246-555-9845", + "isValid": true + }, + { + "PhoneNumber": "+1-246-555-4995", + "isValid": true + }, + { + "PhoneNumber": "+1-246-555-6790", + "isValid": true + }, + { + "PhoneNumber": "+1-246-555-0542", + "isValid": true + }, + { + "PhoneNumber": "+1-246-555-0696", + "isValid": true + }, + { + "PhoneNumber": "+1-246-555-7068", + "isValid": true + }, + { + "PhoneNumber": "+1-246-555-5261", + "isValid": true + }, + { + "PhoneNumber": "+1-246-555-2760", + "isValid": true + }, + { + "PhoneNumber": "+1-246-555-0132", + "isValid": true + }, + { + "PhoneNumber": "+1-246-555-4968", + "isValid": true + }, + { + "PhoneNumber": "+1-246-555-6290", + "isValid": true + }, + { + "PhoneNumber": "+1-246-555-3309", + "isValid": true + } + ], + "BY": [ + { + "PhoneNumber": "+375-255-551-620", + "isValid": true + }, + { + "PhoneNumber": "+375-295-556-144", + "isValid": true + }, + { + "PhoneNumber": "+375-445-559-575", + "isValid": true + }, + { + "PhoneNumber": "+375-255-553-118", + "isValid": true + }, + { + "PhoneNumber": "+375-335-552-934", + "isValid": true + }, + { + "PhoneNumber": "+375-335-558-686", + "isValid": true + }, + { + "PhoneNumber": "+375-445-559-717", + "isValid": true + }, + { + "PhoneNumber": "+375-445-554-454", + "isValid": true + }, + { + "PhoneNumber": "+375-445-558-130", + "isValid": true + }, + { + "PhoneNumber": "+375-445-559-360", + "isValid": true + }, + { + "PhoneNumber": "+375-255-554-103", + "isValid": true + }, + { + "PhoneNumber": "+375-335-555-526", + "isValid": true + }, + { + "PhoneNumber": "+375-335-558-584", + "isValid": true + }, + { + "PhoneNumber": "+375-295-556-580", + "isValid": true + }, + { + "PhoneNumber": "+375-445-559-353", + "isValid": true + }, + { + "PhoneNumber": "+375-295-553-963", + "isValid": true + }, + { + "PhoneNumber": "+375-295-559-250", + "isValid": true + }, + { + "PhoneNumber": "+375-255-552-065", + "isValid": true + }, + { + "PhoneNumber": "+375-445-550-835", + "isValid": true + }, + { + "PhoneNumber": "+375-445-557-506", + "isValid": true + } + ], + "BE": [ + { + "PhoneNumber": "+32-485-556-231", + "isValid": true + }, + { + "PhoneNumber": "+32-495-559-329", + "isValid": true + }, + { + "PhoneNumber": "+32-475-552-556", + "isValid": true + }, + { + "PhoneNumber": "+32-456-555-694", + "isValid": true + }, + { + "PhoneNumber": "+32-495-554-238", + "isValid": true + }, + { + "PhoneNumber": "+32-475-556-706", + "isValid": true + }, + { + "PhoneNumber": "+32-456-555-874", + "isValid": true + }, + { + "PhoneNumber": "+32-495-559-580", + "isValid": true + }, + { + "PhoneNumber": "+32-456-555-232", + "isValid": true + }, + { + "PhoneNumber": "+32-456-555-246", + "isValid": true + }, + { + "PhoneNumber": "+32-456-555-283", + "isValid": true + }, + { + "PhoneNumber": "+32-495-554-574", + "isValid": true + }, + { + "PhoneNumber": "+32-495-559-420", + "isValid": true + }, + { + "PhoneNumber": "+32-456-555-166", + "isValid": true + }, + { + "PhoneNumber": "+32-456-555-631", + "isValid": true + }, + { + "PhoneNumber": "+32-456-555-635", + "isValid": true + }, + { + "PhoneNumber": "+32-485-555-132", + "isValid": true + }, + { + "PhoneNumber": "+32-495-558-870", + "isValid": true + }, + { + "PhoneNumber": "+32-456-555-448", + "isValid": true + }, + { + "PhoneNumber": "+32-485-558-054", + "isValid": true + } + ], + "BZ": [ + { + "PhoneNumber": "+501-655-597", + "isValid": false + }, + { + "PhoneNumber": "+501-655-543-3", + "isValid": true + }, + { + "PhoneNumber": "+501-655-597-9", + "isValid": true + }, + { + "PhoneNumber": "+501-655-517", + "isValid": false + }, + { + "PhoneNumber": "+501-655-565", + "isValid": false + }, + { + "PhoneNumber": "+501-655-593", + "isValid": false + }, + { + "PhoneNumber": "+501-655-554", + "isValid": false + }, + { + "PhoneNumber": "+501-655-546-0", + "isValid": true + }, + { + "PhoneNumber": "+501-655-576", + "isValid": false + }, + { + "PhoneNumber": "+501-655-557", + "isValid": false + }, + { + "PhoneNumber": "+501-655-551-5", + "isValid": true + }, + { + "PhoneNumber": "+501-655-519", + "isValid": false + }, + { + "PhoneNumber": "+501-655-561", + "isValid": false + }, + { + "PhoneNumber": "+501-655-569-5", + "isValid": true + }, + { + "PhoneNumber": "+501-655-520-1", + "isValid": true + }, + { + "PhoneNumber": "+501-655-572", + "isValid": false + }, + { + "PhoneNumber": "+501-655-578-6", + "isValid": true + }, + { + "PhoneNumber": "+501-655-569", + "isValid": false + }, + { + "PhoneNumber": "+501-655-566-5", + "isValid": true + }, + { + "PhoneNumber": "+501-655-551", + "isValid": false + } + ], + "BJ": [ + { + "PhoneNumber": "+229-955-554-02", + "isValid": true + }, + { + "PhoneNumber": "+229-955-538-2214", + "isValid": false + }, + { + "PhoneNumber": "+229-955-578-743", + "isValid": false + }, + { + "PhoneNumber": "+229-955-564-1493", + "isValid": false + }, + { + "PhoneNumber": "+229-955-541-11", + "isValid": true + }, + { + "PhoneNumber": "+229-955-588-594", + "isValid": false + }, + { + "PhoneNumber": "+229-955-575-2774", + "isValid": false + }, + { + "PhoneNumber": "+229-955-579-92", + "isValid": true + }, + { + "PhoneNumber": "+229-955-503-2603", + "isValid": false + }, + { + "PhoneNumber": "+229-955-596-5514", + "isValid": false + }, + { + "PhoneNumber": "+229-955-504-400", + "isValid": false + }, + { + "PhoneNumber": "+229-955-590-83", + "isValid": true + }, + { + "PhoneNumber": "+229-955-565-5719", + "isValid": false + }, + { + "PhoneNumber": "+229-955-581-110", + "isValid": false + }, + { + "PhoneNumber": "+229-955-574-863", + "isValid": false + }, + { + "PhoneNumber": "+229-955-578-7691", + "isValid": false + }, + { + "PhoneNumber": "+229-955-550-192", + "isValid": false + }, + { + "PhoneNumber": "+229-955-521-0614", + "isValid": false + }, + { + "PhoneNumber": "+229-955-595-4703", + "isValid": false + }, + { + "PhoneNumber": "+229-955-591-775", + "isValid": false + } + ], + "BM": [ + { + "PhoneNumber": "+1-441-555-9295", + "isValid": true + }, + { + "PhoneNumber": "+1-441-555-2776", + "isValid": true + }, + { + "PhoneNumber": "+1-441-555-2850", + "isValid": true + }, + { + "PhoneNumber": "+1-441-555-8109", + "isValid": true + }, + { + "PhoneNumber": "+1-441-555-4321", + "isValid": true + }, + { + "PhoneNumber": "+1-441-555-4103", + "isValid": true + }, + { + "PhoneNumber": "+1-441-555-5052", + "isValid": true + }, + { + "PhoneNumber": "+1-441-555-2785", + "isValid": true + }, + { + "PhoneNumber": "+1-441-555-5276", + "isValid": true + }, + { + "PhoneNumber": "+1-441-555-4332", + "isValid": true + }, + { + "PhoneNumber": "+1-441-555-4642", + "isValid": true + }, + { + "PhoneNumber": "+1-441-555-5180", + "isValid": true + }, + { + "PhoneNumber": "+1-441-555-6396", + "isValid": true + }, + { + "PhoneNumber": "+1-441-555-5033", + "isValid": true + }, + { + "PhoneNumber": "+1-441-555-5917", + "isValid": true + }, + { + "PhoneNumber": "+1-441-555-8966", + "isValid": true + }, + { + "PhoneNumber": "+1-441-555-9335", + "isValid": true + }, + { + "PhoneNumber": "+1-441-555-0576", + "isValid": true + }, + { + "PhoneNumber": "+1-441-555-4920", + "isValid": true + }, + { + "PhoneNumber": "+1-441-555-8807", + "isValid": true + } + ], + "BT": [ + { + "PhoneNumber": "+975-175-559-789", + "isValid": false + }, + { + "PhoneNumber": "+975-175-557-7379", + "isValid": false + }, + { + "PhoneNumber": "+975-175-555-3515", + "isValid": false + }, + { + "PhoneNumber": "+975-175-556-034", + "isValid": false + }, + { + "PhoneNumber": "+975-175-558-7981", + "isValid": false + }, + { + "PhoneNumber": "+975-175-557-305", + "isValid": false + }, + { + "PhoneNumber": "+975-175-552-0208", + "isValid": false + }, + { + "PhoneNumber": "+975-175-559-00", + "isValid": true + }, + { + "PhoneNumber": "+975-175-555-6625", + "isValid": false + }, + { + "PhoneNumber": "+975-175-559-237", + "isValid": false + }, + { + "PhoneNumber": "+975-175-552-107", + "isValid": false + }, + { + "PhoneNumber": "+975-175-552-5049", + "isValid": false + }, + { + "PhoneNumber": "+975-175-556-9670", + "isValid": false + }, + { + "PhoneNumber": "+975-175-552-049", + "isValid": false + }, + { + "PhoneNumber": "+975-175-557-779", + "isValid": false + }, + { + "PhoneNumber": "+975-175-551-563", + "isValid": false + }, + { + "PhoneNumber": "+975-175-550-611", + "isValid": false + }, + { + "PhoneNumber": "+975-175-550-084", + "isValid": false + }, + { + "PhoneNumber": "+975-175-552-41", + "isValid": true + }, + { + "PhoneNumber": "+975-175-554-8362", + "isValid": false + } + ], + "BO": [ + { + "PhoneNumber": "+591-755-590-685", + "isValid": false + }, + { + "PhoneNumber": "+591-755-512-4498", + "isValid": false + }, + { + "PhoneNumber": "+591-755-532-79", + "isValid": true + }, + { + "PhoneNumber": "+591-755-500-41", + "isValid": true + }, + { + "PhoneNumber": "+591-755-500-6839", + "isValid": false + }, + { + "PhoneNumber": "+591-655-525-359", + "isValid": false + }, + { + "PhoneNumber": "+591-655-599-7178", + "isValid": false + }, + { + "PhoneNumber": "+591-655-549-38", + "isValid": true + }, + { + "PhoneNumber": "+591-755-542-6824", + "isValid": false + }, + { + "PhoneNumber": "+591-655-524-343", + "isValid": false + }, + { + "PhoneNumber": "+591-655-595-07", + "isValid": true + }, + { + "PhoneNumber": "+591-655-589-13", + "isValid": true + }, + { + "PhoneNumber": "+591-755-553-90", + "isValid": true + }, + { + "PhoneNumber": "+591-755-503-153", + "isValid": false + }, + { + "PhoneNumber": "+591-655-579-7226", + "isValid": false + }, + { + "PhoneNumber": "+591-655-541-9045", + "isValid": false + }, + { + "PhoneNumber": "+591-755-596-90", + "isValid": true + }, + { + "PhoneNumber": "+591-655-588-575", + "isValid": false + }, + { + "PhoneNumber": "+591-755-597-16", + "isValid": true + }, + { + "PhoneNumber": "+591-655-522-4026", + "isValid": false + } + ], + "BQ": [ + { + "PhoneNumber": "+599-555-305-4875", + "isValid": false + }, + { + "PhoneNumber": "+599-555-873-310", + "isValid": false + }, + { + "PhoneNumber": "+599-555-676-6376", + "isValid": false + }, + { + "PhoneNumber": "+599-555-715-61", + "isValid": false + }, + { + "PhoneNumber": "+599-555-841-3886", + "isValid": false + }, + { + "PhoneNumber": "+599-555-333-4444", + "isValid": false + }, + { + "PhoneNumber": "+599-555-625-07", + "isValid": false + }, + { + "PhoneNumber": "+599-555-784-77", + "isValid": false + }, + { + "PhoneNumber": "+599-555-707-1355", + "isValid": false + }, + { + "PhoneNumber": "+599-555-095-950", + "isValid": false + }, + { + "PhoneNumber": "+599-555-202-801", + "isValid": false + }, + { + "PhoneNumber": "+599-555-487-27", + "isValid": false + }, + { + "PhoneNumber": "+599-555-542-418", + "isValid": false + }, + { + "PhoneNumber": "+599-555-121-139", + "isValid": false + }, + { + "PhoneNumber": "+599-555-814-021", + "isValid": false + }, + { + "PhoneNumber": "+599-555-328-845", + "isValid": false + }, + { + "PhoneNumber": "+599-555-318-8222", + "isValid": false + }, + { + "PhoneNumber": "+599-555-822-854", + "isValid": false + }, + { + "PhoneNumber": "+599-555-956-067", + "isValid": false + }, + { + "PhoneNumber": "+599-555-011-6190", + "isValid": false + } + ], + "BA": [ + { + "PhoneNumber": "+387-645-556-45", + "isValid": true + }, + { + "PhoneNumber": "+387-625-559-67", + "isValid": true + }, + { + "PhoneNumber": "+387-635-552-72", + "isValid": true + }, + { + "PhoneNumber": "+387-645-559-57", + "isValid": true + }, + { + "PhoneNumber": "+387-635-558-09", + "isValid": true + }, + { + "PhoneNumber": "+387-665-551-06", + "isValid": true + }, + { + "PhoneNumber": "+387-615-554-05", + "isValid": true + }, + { + "PhoneNumber": "+387-615-557-89", + "isValid": true + }, + { + "PhoneNumber": "+387-665-557-83", + "isValid": true + }, + { + "PhoneNumber": "+387-665-558-04", + "isValid": true + }, + { + "PhoneNumber": "+387-635-554-20", + "isValid": true + }, + { + "PhoneNumber": "+387-665-550-22", + "isValid": true + }, + { + "PhoneNumber": "+387-605-559-88", + "isValid": true + }, + { + "PhoneNumber": "+387-655-553-41", + "isValid": true + }, + { + "PhoneNumber": "+387-665-551-81", + "isValid": true + }, + { + "PhoneNumber": "+387-605-551-14", + "isValid": true + }, + { + "PhoneNumber": "+387-665-553-28", + "isValid": true + }, + { + "PhoneNumber": "+387-655-553-78", + "isValid": true + }, + { + "PhoneNumber": "+387-605-556-32", + "isValid": true + }, + { + "PhoneNumber": "+387-625-557-75", + "isValid": true + } + ], + "BW": [ + { + "PhoneNumber": "+267-755-505-459", + "isValid": false + }, + { + "PhoneNumber": "+267-755-585-732", + "isValid": false + }, + { + "PhoneNumber": "+267-755-542-951", + "isValid": false + }, + { + "PhoneNumber": "+267-755-588-73", + "isValid": true + }, + { + "PhoneNumber": "+267-755-568-529", + "isValid": false + }, + { + "PhoneNumber": "+267-755-576-712", + "isValid": false + }, + { + "PhoneNumber": "+267-755-593-9259", + "isValid": false + }, + { + "PhoneNumber": "+267-755-551-5044", + "isValid": false + }, + { + "PhoneNumber": "+267-755-549-711", + "isValid": false + }, + { + "PhoneNumber": "+267-755-546-9857", + "isValid": false + }, + { + "PhoneNumber": "+267-755-531-5326", + "isValid": false + }, + { + "PhoneNumber": "+267-755-545-93", + "isValid": true + }, + { + "PhoneNumber": "+267-755-570-64", + "isValid": true + }, + { + "PhoneNumber": "+267-755-570-290", + "isValid": false + }, + { + "PhoneNumber": "+267-755-577-5339", + "isValid": false + }, + { + "PhoneNumber": "+267-755-519-600", + "isValid": false + }, + { + "PhoneNumber": "+267-755-552-9366", + "isValid": false + }, + { + "PhoneNumber": "+267-755-552-5008", + "isValid": false + }, + { + "PhoneNumber": "+267-755-554-104", + "isValid": false + }, + { + "PhoneNumber": "+267-755-571-07", + "isValid": true + } + ], + "BR": [ + { + "PhoneNumber": "+55-955-510-05978", + "isValid": true + }, + { + "PhoneNumber": "+55-955-555-74377", + "isValid": true + }, + { + "PhoneNumber": "+55-955-526-62017", + "isValid": true + }, + { + "PhoneNumber": "+55-955-557-85491", + "isValid": true + }, + { + "PhoneNumber": "+55-955-572-19606", + "isValid": true + }, + { + "PhoneNumber": "+55-955-558-34557", + "isValid": true + }, + { + "PhoneNumber": "+55-955-509-55192", + "isValid": true + }, + { + "PhoneNumber": "+55-955-559-86210", + "isValid": true + }, + { + "PhoneNumber": "+55-955-565-28192", + "isValid": true + }, + { + "PhoneNumber": "+55-955-558-97279", + "isValid": true + }, + { + "PhoneNumber": "+55-955-523-80344", + "isValid": true + }, + { + "PhoneNumber": "+55-955-553-48965", + "isValid": true + }, + { + "PhoneNumber": "+55-955-512-73762", + "isValid": true + }, + { + "PhoneNumber": "+55-955-506-74145", + "isValid": true + }, + { + "PhoneNumber": "+55-955-556-01891", + "isValid": true + }, + { + "PhoneNumber": "+55-955-533-76103", + "isValid": true + }, + { + "PhoneNumber": "+55-955-542-11639", + "isValid": true + }, + { + "PhoneNumber": "+55-955-582-97967", + "isValid": true + }, + { + "PhoneNumber": "+55-955-581-20929", + "isValid": true + }, + { + "PhoneNumber": "+55-955-575-38673", + "isValid": true + } + ], + "IO": [ + { + "PhoneNumber": "+246-387-555-5", + "isValid": false + }, + { + "PhoneNumber": "+246-387-555-7", + "isValid": false + }, + { + "PhoneNumber": "+246-387-555-0", + "isValid": false + }, + { + "PhoneNumber": "+246-387-555-7", + "isValid": false + }, + { + "PhoneNumber": "+246-387-555-6", + "isValid": false + }, + { + "PhoneNumber": "+246-387-555-0", + "isValid": false + }, + { + "PhoneNumber": "+246-387-555-7", + "isValid": false + }, + { + "PhoneNumber": "+246-387-555-0", + "isValid": false + }, + { + "PhoneNumber": "+246-387-555-7", + "isValid": false + }, + { + "PhoneNumber": "+246-387-555-6", + "isValid": false + }, + { + "PhoneNumber": "+246-387-555-5", + "isValid": false + }, + { + "PhoneNumber": "+246-387-555-1", + "isValid": false + }, + { + "PhoneNumber": "+246-387-555-6", + "isValid": false + }, + { + "PhoneNumber": "+246-387-555-1", + "isValid": false + }, + { + "PhoneNumber": "+246-387-555-0", + "isValid": false + }, + { + "PhoneNumber": "+246-387-555-1", + "isValid": false + }, + { + "PhoneNumber": "+246-387-555-1", + "isValid": false + }, + { + "PhoneNumber": "+246-387-555-4", + "isValid": false + }, + { + "PhoneNumber": "+246-387-555-6", + "isValid": false + }, + { + "PhoneNumber": "+246-387-555-1", + "isValid": false + } + ], + "BN": [ + { + "PhoneNumber": "+673-855-580-8735", + "isValid": false + }, + { + "PhoneNumber": "+673-855-565-927", + "isValid": false + }, + { + "PhoneNumber": "+673-855-562-646", + "isValid": false + }, + { + "PhoneNumber": "+673-855-555-8391", + "isValid": false + }, + { + "PhoneNumber": "+673-855-599-926", + "isValid": false + }, + { + "PhoneNumber": "+673-855-524-807", + "isValid": false + }, + { + "PhoneNumber": "+673-855-599-2103", + "isValid": false + }, + { + "PhoneNumber": "+673-855-581-08", + "isValid": false + }, + { + "PhoneNumber": "+673-855-572-3380", + "isValid": false + }, + { + "PhoneNumber": "+673-855-543-32", + "isValid": false + }, + { + "PhoneNumber": "+673-855-581-0613", + "isValid": false + }, + { + "PhoneNumber": "+673-855-520-53", + "isValid": false + }, + { + "PhoneNumber": "+673-855-573-066", + "isValid": false + }, + { + "PhoneNumber": "+673-855-523-57", + "isValid": false + }, + { + "PhoneNumber": "+673-855-598-16", + "isValid": false + }, + { + "PhoneNumber": "+673-855-560-5888", + "isValid": false + }, + { + "PhoneNumber": "+673-855-540-4354", + "isValid": false + }, + { + "PhoneNumber": "+673-855-582-52", + "isValid": false + }, + { + "PhoneNumber": "+673-855-591-85", + "isValid": false + }, + { + "PhoneNumber": "+673-855-541-3953", + "isValid": false + } + ], + "BG": [ + { + "PhoneNumber": "+359-485-552-573", + "isValid": false + }, + { + "PhoneNumber": "+359-485-550-935", + "isValid": false + }, + { + "PhoneNumber": "+359-875-551-301", + "isValid": true + }, + { + "PhoneNumber": "+359-895-553-979", + "isValid": true + }, + { + "PhoneNumber": "+359-885-559-473", + "isValid": true + }, + { + "PhoneNumber": "+359-485-553-659", + "isValid": false + }, + { + "PhoneNumber": "+359-875-552-029", + "isValid": true + }, + { + "PhoneNumber": "+359-885-554-513", + "isValid": true + }, + { + "PhoneNumber": "+359-988-555-177", + "isValid": true + }, + { + "PhoneNumber": "+359-485-557-476", + "isValid": false + }, + { + "PhoneNumber": "+359-988-555-501", + "isValid": true + }, + { + "PhoneNumber": "+359-875-558-561", + "isValid": true + }, + { + "PhoneNumber": "+359-885-551-787", + "isValid": true + }, + { + "PhoneNumber": "+359-485-555-177", + "isValid": false + }, + { + "PhoneNumber": "+359-885-553-055", + "isValid": true + }, + { + "PhoneNumber": "+359-485-554-067", + "isValid": false + }, + { + "PhoneNumber": "+359-988-555-509", + "isValid": true + }, + { + "PhoneNumber": "+359-485-552-404", + "isValid": false + }, + { + "PhoneNumber": "+359-988-555-233", + "isValid": true + }, + { + "PhoneNumber": "+359-895-553-538", + "isValid": true + } + ], + "BF": [ + { + "PhoneNumber": "+226-745-552-04", + "isValid": true + }, + { + "PhoneNumber": "+226-795-554-76", + "isValid": true + }, + { + "PhoneNumber": "+226-785-559-04", + "isValid": true + }, + { + "PhoneNumber": "+226-745-554-77", + "isValid": true + }, + { + "PhoneNumber": "+226-715-558-43", + "isValid": true + }, + { + "PhoneNumber": "+226-785-550-81", + "isValid": true + }, + { + "PhoneNumber": "+226-775-555-57", + "isValid": true + }, + { + "PhoneNumber": "+226-745-550-53", + "isValid": true + }, + { + "PhoneNumber": "+226-765-553-00", + "isValid": true + }, + { + "PhoneNumber": "+226-745-555-41", + "isValid": true + }, + { + "PhoneNumber": "+226-735-550-73", + "isValid": true + }, + { + "PhoneNumber": "+226-785-559-65", + "isValid": true + }, + { + "PhoneNumber": "+226-715-552-17", + "isValid": true + }, + { + "PhoneNumber": "+226-725-557-88", + "isValid": true + }, + { + "PhoneNumber": "+226-725-550-58", + "isValid": true + }, + { + "PhoneNumber": "+226-755-557-56", + "isValid": true + }, + { + "PhoneNumber": "+226-755-556-64", + "isValid": true + }, + { + "PhoneNumber": "+226-775-557-45", + "isValid": true + }, + { + "PhoneNumber": "+226-745-559-22", + "isValid": true + }, + { + "PhoneNumber": "+226-785-557-84", + "isValid": true + } + ], + "BI": [ + { + "PhoneNumber": "+257-755-582-681", + "isValid": false + }, + { + "PhoneNumber": "+257-755-525-2775", + "isValid": false + }, + { + "PhoneNumber": "+257-755-503-47", + "isValid": true + }, + { + "PhoneNumber": "+257-755-521-9732", + "isValid": false + }, + { + "PhoneNumber": "+257-755-561-6066", + "isValid": false + }, + { + "PhoneNumber": "+257-755-575-6739", + "isValid": false + }, + { + "PhoneNumber": "+257-755-551-58", + "isValid": true + }, + { + "PhoneNumber": "+257-755-540-56", + "isValid": true + }, + { + "PhoneNumber": "+257-755-587-23", + "isValid": true + }, + { + "PhoneNumber": "+257-755-530-396", + "isValid": false + }, + { + "PhoneNumber": "+257-755-517-69", + "isValid": true + }, + { + "PhoneNumber": "+257-755-508-86", + "isValid": true + }, + { + "PhoneNumber": "+257-755-550-3627", + "isValid": false + }, + { + "PhoneNumber": "+257-755-595-1284", + "isValid": false + }, + { + "PhoneNumber": "+257-755-586-3167", + "isValid": false + }, + { + "PhoneNumber": "+257-755-551-2727", + "isValid": false + }, + { + "PhoneNumber": "+257-755-529-2555", + "isValid": false + }, + { + "PhoneNumber": "+257-755-520-08", + "isValid": true + }, + { + "PhoneNumber": "+257-755-551-2170", + "isValid": false + }, + { + "PhoneNumber": "+257-755-581-076", + "isValid": false + } + ], + "KH": [ + { + "PhoneNumber": "+855-775-556-801", + "isValid": true + }, + { + "PhoneNumber": "+855-775-555-975", + "isValid": true + }, + { + "PhoneNumber": "+855-995-552-408", + "isValid": true + }, + { + "PhoneNumber": "+855-925-558-345", + "isValid": true + }, + { + "PhoneNumber": "+855-925-550-140", + "isValid": true + }, + { + "PhoneNumber": "+855-125-559-620", + "isValid": true + }, + { + "PhoneNumber": "+855-925-554-452", + "isValid": true + }, + { + "PhoneNumber": "+855-775-558-495", + "isValid": true + }, + { + "PhoneNumber": "+855-125-555-203", + "isValid": true + }, + { + "PhoneNumber": "+855-125-550-797", + "isValid": true + }, + { + "PhoneNumber": "+855-925-553-939", + "isValid": true + }, + { + "PhoneNumber": "+855-125-552-780", + "isValid": true + }, + { + "PhoneNumber": "+855-925-555-327", + "isValid": true + }, + { + "PhoneNumber": "+855-925-559-960", + "isValid": true + }, + { + "PhoneNumber": "+855-775-552-236", + "isValid": true + }, + { + "PhoneNumber": "+855-115-554-396", + "isValid": true + }, + { + "PhoneNumber": "+855-925-555-714", + "isValid": true + }, + { + "PhoneNumber": "+855-995-558-623", + "isValid": true + }, + { + "PhoneNumber": "+855-115-558-197", + "isValid": true + }, + { + "PhoneNumber": "+855-925-553-229", + "isValid": true + } + ], + "CM": [ + { + "PhoneNumber": "+237-755-530-04", + "isValid": false + }, + { + "PhoneNumber": "+237-955-524-40", + "isValid": false + }, + { + "PhoneNumber": "+237-955-568-0123", + "isValid": false + }, + { + "PhoneNumber": "+237-955-510-2826", + "isValid": false + }, + { + "PhoneNumber": "+237-955-504-777", + "isValid": false + }, + { + "PhoneNumber": "+237-955-521-9917", + "isValid": false + }, + { + "PhoneNumber": "+237-755-549-185", + "isValid": false + }, + { + "PhoneNumber": "+237-755-576-816", + "isValid": false + }, + { + "PhoneNumber": "+237-755-503-41", + "isValid": false + }, + { + "PhoneNumber": "+237-955-535-2505", + "isValid": false + }, + { + "PhoneNumber": "+237-755-518-1396", + "isValid": false + }, + { + "PhoneNumber": "+237-755-546-4286", + "isValid": false + }, + { + "PhoneNumber": "+237-755-596-988", + "isValid": false + }, + { + "PhoneNumber": "+237-755-585-02", + "isValid": false + }, + { + "PhoneNumber": "+237-955-587-55", + "isValid": false + }, + { + "PhoneNumber": "+237-755-550-706", + "isValid": false + }, + { + "PhoneNumber": "+237-755-572-253", + "isValid": false + }, + { + "PhoneNumber": "+237-755-506-7781", + "isValid": false + }, + { + "PhoneNumber": "+237-755-522-7297", + "isValid": false + }, + { + "PhoneNumber": "+237-755-597-4265", + "isValid": false + } + ], + "CA": [ + { + "PhoneNumber": "+1-555-065-7121", + "isValid": true + }, + { + "PhoneNumber": "+1-555-692-2899", + "isValid": true + }, + { + "PhoneNumber": "+1-555-976-9527", + "isValid": true + }, + { + "PhoneNumber": "+1-555-024-2106", + "isValid": true + }, + { + "PhoneNumber": "+1-555-141-5355", + "isValid": true + }, + { + "PhoneNumber": "+1-555-101-2377", + "isValid": true + }, + { + "PhoneNumber": "+1-555-077-5910", + "isValid": true + }, + { + "PhoneNumber": "+1-555-774-1649", + "isValid": true + }, + { + "PhoneNumber": "+1-555-382-4756", + "isValid": true + }, + { + "PhoneNumber": "+1-555-746-6156", + "isValid": true + }, + { + "PhoneNumber": "+1-555-579-2117", + "isValid": true + }, + { + "PhoneNumber": "+1-555-086-4231", + "isValid": true + }, + { + "PhoneNumber": "+1-555-420-2231", + "isValid": true + }, + { + "PhoneNumber": "+1-555-819-8937", + "isValid": true + }, + { + "PhoneNumber": "+1-555-094-1643", + "isValid": true + }, + { + "PhoneNumber": "+1-555-682-5716", + "isValid": true + }, + { + "PhoneNumber": "+1-555-905-3996", + "isValid": true + }, + { + "PhoneNumber": "+1-555-200-3733", + "isValid": true + }, + { + "PhoneNumber": "+1-555-811-0824", + "isValid": true + }, + { + "PhoneNumber": "+1-555-091-7992", + "isValid": true + } + ], + "KY": [ + { + "PhoneNumber": "+1-345-555-3457", + "isValid": true + }, + { + "PhoneNumber": "+1-345-555-9489", + "isValid": true + }, + { + "PhoneNumber": "+1-345-555-0382", + "isValid": true + }, + { + "PhoneNumber": "+1-345-555-9113", + "isValid": true + }, + { + "PhoneNumber": "+1-345-555-1426", + "isValid": true + }, + { + "PhoneNumber": "+1-345-555-1451", + "isValid": true + }, + { + "PhoneNumber": "+1-345-555-0416", + "isValid": true + }, + { + "PhoneNumber": "+1-345-555-4852", + "isValid": true + }, + { + "PhoneNumber": "+1-345-555-8390", + "isValid": true + }, + { + "PhoneNumber": "+1-345-555-6330", + "isValid": true + }, + { + "PhoneNumber": "+1-345-555-4006", + "isValid": true + }, + { + "PhoneNumber": "+1-345-555-9794", + "isValid": true + }, + { + "PhoneNumber": "+1-345-555-1608", + "isValid": true + }, + { + "PhoneNumber": "+1-345-555-4997", + "isValid": true + }, + { + "PhoneNumber": "+1-345-555-1050", + "isValid": true + }, + { + "PhoneNumber": "+1-345-555-1538", + "isValid": true + }, + { + "PhoneNumber": "+1-345-555-2990", + "isValid": true + }, + { + "PhoneNumber": "+1-345-555-3467", + "isValid": true + }, + { + "PhoneNumber": "+1-345-555-7185", + "isValid": true + }, + { + "PhoneNumber": "+1-345-555-3707", + "isValid": true + } + ], + "CF": [ + { + "PhoneNumber": "+236-555-389-0317", + "isValid": false + }, + { + "PhoneNumber": "+236-555-445-62", + "isValid": false + }, + { + "PhoneNumber": "+236-555-059-361", + "isValid": false + }, + { + "PhoneNumber": "+236-555-524-972", + "isValid": false + }, + { + "PhoneNumber": "+236-555-719-0271", + "isValid": false + }, + { + "PhoneNumber": "+236-555-206-99", + "isValid": false + }, + { + "PhoneNumber": "+236-555-090-9589", + "isValid": false + }, + { + "PhoneNumber": "+236-555-498-7524", + "isValid": false + }, + { + "PhoneNumber": "+236-555-420-9465", + "isValid": false + }, + { + "PhoneNumber": "+236-555-973-13", + "isValid": false + }, + { + "PhoneNumber": "+236-555-715-029", + "isValid": false + }, + { + "PhoneNumber": "+236-555-137-339", + "isValid": false + }, + { + "PhoneNumber": "+236-555-102-1892", + "isValid": false + }, + { + "PhoneNumber": "+236-555-215-49", + "isValid": false + }, + { + "PhoneNumber": "+236-555-519-1191", + "isValid": false + }, + { + "PhoneNumber": "+236-555-230-6306", + "isValid": false + }, + { + "PhoneNumber": "+236-555-637-12", + "isValid": false + }, + { + "PhoneNumber": "+236-555-412-702", + "isValid": false + }, + { + "PhoneNumber": "+236-555-595-060", + "isValid": false + }, + { + "PhoneNumber": "+236-555-476-672", + "isValid": false + } + ], + "TD": [ + { + "PhoneNumber": "+235-935-552-64", + "isValid": true + }, + { + "PhoneNumber": "+235-635-551-69", + "isValid": true + }, + { + "PhoneNumber": "+235-935-551-49", + "isValid": true + }, + { + "PhoneNumber": "+235-655-556-08", + "isValid": true + }, + { + "PhoneNumber": "+235-995-553-80", + "isValid": true + }, + { + "PhoneNumber": "+235-935-554-75", + "isValid": true + }, + { + "PhoneNumber": "+235-655-557-67", + "isValid": true + }, + { + "PhoneNumber": "+235-935-550-20", + "isValid": true + }, + { + "PhoneNumber": "+235-935-551-12", + "isValid": true + }, + { + "PhoneNumber": "+235-665-552-77", + "isValid": true + }, + { + "PhoneNumber": "+235-905-556-22", + "isValid": true + }, + { + "PhoneNumber": "+235-905-557-69", + "isValid": true + }, + { + "PhoneNumber": "+235-905-552-07", + "isValid": true + }, + { + "PhoneNumber": "+235-655-558-12", + "isValid": true + }, + { + "PhoneNumber": "+235-905-559-92", + "isValid": true + }, + { + "PhoneNumber": "+235-995-555-63", + "isValid": true + }, + { + "PhoneNumber": "+235-655-555-81", + "isValid": true + }, + { + "PhoneNumber": "+235-635-552-56", + "isValid": true + }, + { + "PhoneNumber": "+235-905-553-35", + "isValid": true + }, + { + "PhoneNumber": "+235-955-552-75", + "isValid": true + } + ], + "CL": [ + { + "PhoneNumber": "+56-955-530-022", + "isValid": true + }, + { + "PhoneNumber": "+56-955-558-640", + "isValid": true + }, + { + "PhoneNumber": "+56-955-572-896", + "isValid": true + }, + { + "PhoneNumber": "+56-955-555-562", + "isValid": true + }, + { + "PhoneNumber": "+56-955-544-212", + "isValid": true + }, + { + "PhoneNumber": "+56-955-512-066", + "isValid": true + }, + { + "PhoneNumber": "+56-955-542-176", + "isValid": true + }, + { + "PhoneNumber": "+56-955-511-025", + "isValid": true + }, + { + "PhoneNumber": "+56-955-521-366", + "isValid": true + }, + { + "PhoneNumber": "+56-955-592-763", + "isValid": true + }, + { + "PhoneNumber": "+56-955-563-576", + "isValid": true + }, + { + "PhoneNumber": "+56-955-586-032", + "isValid": true + }, + { + "PhoneNumber": "+56-955-514-084", + "isValid": true + }, + { + "PhoneNumber": "+56-955-539-979", + "isValid": true + }, + { + "PhoneNumber": "+56-955-547-002", + "isValid": true + }, + { + "PhoneNumber": "+56-955-582-495", + "isValid": true + }, + { + "PhoneNumber": "+56-955-567-197", + "isValid": true + }, + { + "PhoneNumber": "+56-955-533-064", + "isValid": true + }, + { + "PhoneNumber": "+56-955-592-763", + "isValid": true + }, + { + "PhoneNumber": "+56-955-524-164", + "isValid": true + } + ] +} diff --git a/packages/i18nify-js/src/modules/phoneNumber/data/phoneRegexMapper.json b/packages/i18nify-js/src/modules/phoneNumber/data/phoneRegexMapper.json index c9a3c28c..0e1b81c7 100644 --- a/packages/i18nify-js/src/modules/phoneNumber/data/phoneRegexMapper.json +++ b/packages/i18nify-js/src/modules/phoneNumber/data/phoneRegexMapper.json @@ -1,254 +1,254 @@ { - "AF": "^(?:\\+93)?\\d{9}$", - "AX": "^\\+358\\d{5,8}$", - "AL": "^(?:\\+?355)?(?:[4-9]\\d{7}|6\\d{8})$", - "DZ": "^(?:\\+?213|0)([567]\\d{8})$", - "AS": "^(?:\\+1-684)?(?:\\d{7})$", - "AD": "^(?:\\+376)?\\d{6}$", - "AO": "^(?:\\+244)?(?:\\d{9})$", - "AI": "^(?:\\+1-264)?(?:\\d{7})$", + "AF": "[2-7]\\d{8}", + "AX": "2\\d{4,9}|35\\d{4,5}|(?:60\\d\\d|800)\\d{4,6}|7\\d{5,11}|(?:[14]\\d|3[0-46-9]|50)\\d{4,8}", + "AL": "(?:700\\d\\d|900)\\d{3}|8\\d{5,7}|(?:[2-5]|6\\d)\\d{7}", + "DZ": "(?:[1-4]|[5-79]\\d|80)\\d{7}", + "AS": "(?:[58]\\d\\d|684|900)\\d{7}", + "AD": "(?:1|6\\d)\\d{7}|[135-9]\\d{5}", + "AO": "[29]\\d{8}", + "AI": "(?:264|[58]\\d\\d|900)\\d{7}", "AQ": "", - "AG": "^(?:\\+1-268)?(?:\\d{7})$", - "AR": "^(?:(?:\\+|0{0,2})54)?(?:11|[2368]\\d)(?:(?=\\d{0,2}15)\\d{2})??\\d{8}$", - "AM": "^(?:\\+?374)?(?:[0-9]{8}|[0-9]{6}[0-9]{2})$", - "AW": "^(?:(?:\\+297)?(?!0)\\d{7})$", - "AU": "^(?:\\+?61|0)4\\d{8}$", - "AT": "^(?:\\+43)?(?:\\d{4,13})$", - "AZ": "^(?:\\+994)?(?:\\d{9})$", - "BS": "^(?:(?:\\+1)?242)?(?:\\d{3})?\\d{7}$", - "BH": "^(?:\\+?973)?[356]\\d{7}$", - "BD": "^(?:\\+?880|0)1[13456789]\\d{8}$", - "BB": "^(?:(?:\\+1)?246)?(?:\\d{3})?\\d{7}$", - "BY": "^(?:\\+375)?(?:\\d{9})$", - "BE": "^(?:\\+32)?(?:\\d{8,9})$", - "BZ": "^(?:(?:\\+501)?\\s?)?[622]\\d{4}$", - "BJ": "^(?:\\+229)?(?:\\d{8})$", - "BM": "^(?:(?:\\+1)?441)?(?:\\d{2})?\\d{7}$", - "BT": "^(?:\\+975)?(?:\\d{8})$", - "BO": "^(?:(?:\\+|0{0,2})591)?(?:(?:2|3|7|6)\\d{7})$", - "BQ": "^(?:\\+599)?(?:\\d{7})$", - "BA": "^(?:\\+387)?(?:\\d{6,8})$", - "BW": "^(?:(?:\\+267)?\\s?)?[74]\\d{7}$", + "AG": "(?:268|[58]\\d\\d|900)\\d{7}", + "AR": "(?:11|[89]\\d\\d)\\d{8}|[2368]\\d{9}", + "AM": "(?:[1-489]\\d|55|60|77)\\d{6}", + "AW": "(?:[25-79]\\d\\d|800)\\d{4}", + "AU": "1(?:[0-79]\\d{7}(?:\\d(?:\\d{2})?)?|8[0-24-9]\\d{7})|[2-478]\\d{8}|1\\d{4,7}", + "AT": "1\\d{3,12}|2\\d{6,12}|43(?:(?:0\\d|5[02-9])\\d{3,9}|2\\d{4,5}|[3467]\\d{4}|8\\d{4,6}|9\\d{4,7})|5\\d{4,12}|8\\d{7,12}|9\\d{8,12}|(?:[367]\\d|4[0-24-9])\\d{4,11}", + "AZ": "365\\d{6}|(?:[124579]\\d|60|88)\\d{7}", + "BS": "(?:242|[58]\\d\\d|900)\\d{7}", + "BH": "[136-9]\\d{7}", + "BD": "[1-469]\\d{9}|8[0-79]\\d{7,8}|[2-79]\\d{8}|[2-9]\\d{7}|[3-9]\\d{6}|[57-9]\\d{5}", + "BB": "(?:246|[58]\\d\\d|900)\\d{7}", + "BY": "(?:[12]\\d|33|44|902)\\d{7}|8(?:0[0-79]\\d{5,7}|[1-7]\\d{9})|8(?:1[0-489]|[5-79]\\d)\\d{7}|8[1-79]\\d{6,7}|8[0-79]\\d{5}|8\\d{5}", + "BE": "4\\d{8}|[1-9]\\d{7}", + "BZ": "(?:0800\\d|[2-8])\\d{6}", + "BJ": "[24-689]\\d{7}", + "BM": "(?:441|[58]\\d\\d|900)\\d{7}", + "BT": "[17]\\d{7}|[2-8]\\d{6}", + "BO": "(?:[2-467]\\d\\d|8001)\\d{5}", + "BQ": "(?:[34]1|7\\d)\\d{5}", + "BA": "6\\d{8}|(?:[35689]\\d|49|70)\\d{6}", + "BW": "(?:0800|(?:[37]|800)\\d)\\d{6}|(?:[2-6]\\d|90)\\d{5}", "BV": "", - "BR": "^(?:\\+55)?(?:\\d{10,11})$", - "IO": "^\\+246\\d{7}$", - "BN": "^(?:\\+?673)?(?:\\d{3})?\\d{4}$", - "BG": "^(?:\\+359)?(?:\\d{7,9})$", - "BF": "^(?:\\+226)?(?:\\d{8})$", - "BI": "^(?:\\+257)?(?:\\d{8})$", - "CV": "^(?:\\+238)?(?:\\d{7})$", - "KH": "^(?:(?:\\+855)|(?:0))(?:\\s?[1-9]\\d{7,8})$", - "CM": "^(?:\\+237)?(?:\\d{9})$", - "CA": "^(\\+\\d{1,2}\\s?)?([2-9]{1}\\d{2}[2-9]{1}\\d{6})$", - "KY": "^(?:\\+?1\\s?(345))\\d{6}$", - "CF": "^(?:\\+236)?(?:\\d{8})$", - "TD": "^(?:\\+235)?\\d{8}$", - "CL": "^(?:\\+56)?(?:\\d{9})$", - "CN": "^(?:(?:\\+|00)86)?1\\d{10}$", - "CX": "^(?:\\+61)?(?:\\d{8,9})$", - "CC": "^(?:\\+61)?(?:\\d{8,9})$", - "CO": "^(?:(?:\\+57|0057)?)?[1-8]{1}\\d{6,7}$", - "KM": "^(?:\\+269)?\\d{7}$", - "CD": "^(?:\\+243)?(?:\\d{9})$", - "CG": "^(?:\\+242)?(?:\\d{9})$", - "CK": "^(?:\\+682)?(?:\\d{5})$", - "CR": "^(?:(?:\\+506)?\\s*|0)?[1-9]\\d{7}$", - "CI": "^(?:\\+225)?(?:\\d{8})$", - "HR": "^(?:\\+?385)?\\d{8,9}$", - "CU": "^(?:\\+?53)?(?:[5-8]\\d{7})$", - "CW": "^(?:\\+599)?(?:\\d{7})$", - "CY": "^(?:\\+357)?(?:\\d{8})$", - "CZ": "^(?:\\+?420)?(?:\\d{9})$", - "DK": "^(?:\\+?45)?(?:\\d{8})$", - "DJ": "^(?:\\+253)?(?:\\d{6})$", - "DM": "^(?:\\+1-767)?(?:\\d{7})$", - "DO": "^(?:(?:\\+1)?809|1-8(?:00|88|89))(?:\\d{7})$", - "EC": "^(?:\\+593)?(?:\\d{8,9})$", - "EG": "^(?:(?:\\+20|20)?(\\d{10}))$", - "SV": "^(?:(?:\\+?503)|(?:0))(?:\\d{8})$", - "GQ": "^(?:\\+240)?\\d{9}$", - "ER": "^(?:\\+291)?(?:\\d{6,7})$", - "EE": "^(?:\\+372)?(?:\\d{7,8})$", - "SZ": "^(?:\\+?268)?\\d{7,8}$", - "ET": "^(?:\\+?251)?[1-59]\\d{8}$", - "FK": "^(?:\\+500)?(?:\\d{5})$", - "FO": "^(?:\\+298)?(?:\\d{6})$", - "FJ": "^(?:(?:\\+?679)?\\s?\\d{3}\\s?\\d{4})?$", - "FI": "^(?:\\+358)?(?:\\d{5,12})$", - "FR": "^(?:\\+33)?(?:\\d{9})$", - "GF": "^(?:\\+594)?\\d{9}$", - "PF": "^(?:\\+689)?\\d{6}$", + "BR": "(?:[1-46-9]\\d\\d|5(?:[0-46-9]\\d|5[0-46-9]))\\d{8}|[1-9]\\d{9}|[3589]\\d{8}|[34]\\d{7}", + "IO": "3\\d{6}", + "BN": "[2-578]\\d{6}", + "BG": "00800\\d{7}|[2-7]\\d{6,7}|[89]\\d{6,8}|2\\d{5}", + "BF": "[025-7]\\d{7}", + "BI": "(?:[267]\\d|31)\\d{6}", + "CV": "(?:[2-59]\\d\\d|800)\\d{4}", + "KH": "1\\d{9}|[1-9]\\d{7,8}", + "CM": "[26]\\d{8}|88\\d{6,7}", + "CA": "(?:[2-8]\\d|90)\\d{8}|3\\d{6}", + "KY": "(?:345|[58]\\d\\d|900)\\d{7}", + "CF": "(?:[27]\\d{3}|8776)\\d{4}", + "TD": "(?:22|[69]\\d|77)\\d{6}", + "CL": "12300\\d{6}|6\\d{9,10}|[2-9]\\d{8}", + "CN": "1[127]\\d{8,9}|2\\d{9}(?:\\d{2})?|[12]\\d{6,7}|86\\d{6}|(?:1[03-689]\\d|6)\\d{7,9}|(?:[3-579]\\d|8[0-57-9])\\d{6,9}", + "CX": "1(?:[0-79]\\d{8}(?:\\d{2})?|8[0-24-9]\\d{7})|[148]\\d{8}|1\\d{5,7}", + "CC": "1(?:[0-79]\\d{8}(?:\\d{2})?|8[0-24-9]\\d{7})|[148]\\d{8}|1\\d{5,7}", + "CO": "(?:60\\d\\d|9101)\\d{6}|(?:1\\d|3)\\d{9}", + "KM": "[3478]\\d{6}", + "CD": "[189]\\d{8}|[1-68]\\d{6}", + "CG": "222\\d{6}|(?:0\\d|80)\\d{7}", + "CK": "[2-578]\\d{4}", + "CR": "(?:8\\d|90)\\d{8}|(?:[24-8]\\d{3}|3005)\\d{4}", + "CI": "[02]\\d{9}", + "HR": "(?:[24-69]\\d|3[0-79])\\d{7}|80\\d{5,7}|[1-79]\\d{7}|6\\d{5,6}", + "CU": "(?:[2-7]|8\\d\\d)\\d{7}|[2-47]\\d{6}|[34]\\d{5}", + "CW": "(?:[34]1|60|(?:7|9\\d)\\d)\\d{5}", + "CY": "(?:[279]\\d|[58]0)\\d{6}", + "CZ": "(?:[2-578]\\d|60)\\d{7}|9\\d{8,11}", + "DK": "[2-9]\\d{7}", + "DJ": "(?:2\\d|77)\\d{6}", + "DM": "(?:[58]\\d\\d|767|900)\\d{7}", + "DO": "(?:[58]\\d\\d|900)\\d{7}", + "EC": "1\\d{9,10}|(?:[2-7]|9\\d)\\d{7}", + "EG": "[189]\\d{8,9}|[24-6]\\d{8}|[135]\\d{7}", + "SV": "[267]\\d{7}|(?:80\\d|900)\\d{4}(?:\\d{4})?", + "GQ": "222\\d{6}|(?:3\\d|55|[89]0)\\d{7}", + "ER": "[178]\\d{6}", + "EE": "8\\d{9}|[4578]\\d{7}|(?:[3-8]\\d|90)\\d{5}", + "SZ": "0800\\d{4}|(?:[237]\\d|900)\\d{6}", + "ET": "(?:11|[2-579]\\d)\\d{7}", + "FK": "[2-7]\\d{4}", + "FO": "[2-9]\\d{5}", + "FJ": "45\\d{5}|(?:0800\\d|[235-9])\\d{6}", + "FI": "[1-35689]\\d{4}|7\\d{10,11}|(?:[124-7]\\d|3[0-46-9])\\d{8}|[1-9]\\d{5,8}", + "FR": "[1-9]\\d{8}", + "GF": "[56]94\\d{6}|(?:80|9\\d)\\d{7}", + "PF": "4\\d{5}(?:\\d{2})?|8\\d{7,8}", "TF": "", - "GA": "^(?:\\+241)?(?:\\d{6,7})$", - "GM": "^(?:\\+220)?\\d{5,7}$", - "GE": "^(?:\\+995)?(?:\\d{8,9})$", - "DE": "^(?:\\+49)?(?:\\d{6,11})$", - "GH": "^(?:(?:\\+233)|0)?(?:\\d{9})$", - "GI": "^(?:\\+350)?\\d{5}$", - "GR": "^(?:\\+30)?\\d{10}$", - "GL": "^(?:\\+299)?\\d{6}$", - "GD": "^(?:\\+1-473)?(?:\\d{7})$", - "GP": "^(?:\\+590)?\\d{9}$", - "GU": "^(?:\\+1-671)?\\d{7}$", - "GT": "^(?:\\+502)?[2468]\\d{7,8}$", - "GG": "^(?:\\+44-1481)?\\d{6}$", - "GN": "^(?:\\+224)?\\d{8}$", - "GW": "^(?:\\+245)?\\d{7}$", - "GY": "^(?:(?:\\+592)?(?:(?:\\s)?[2-9])(?:(?:\\s)?\\d))?(?:(?:\\s)?\\d{4})$", - "HT": "^(?:\\+?509)?\\d{8}$", + "GA": "(?:[067]\\d|11)\\d{6}|[2-7]\\d{6}", + "GM": "[2-9]\\d{6}", + "GE": "(?:[3-57]\\d\\d|800)\\d{6}", + "DE": "[2579]\\d{5,14}|49(?:[34]0|69|8\\d)\\d\\d?|49(?:37|49|60|7[089]|9\\d)\\d{1,3}|49(?:2[024-9]|3[2-689]|7[1-7])\\d{1,8}|(?:1|[368]\\d|4[0-8])\\d{3,13}|49(?:[015]\\d|2[13]|31|[46][1-8])\\d{1,9}", + "GH": "(?:[235]\\d{3}|800)\\d{5}", + "GI": "(?:[25]\\d|60)\\d{6}", + "GR": "5005000\\d{3}|8\\d{9,11}|(?:[269]\\d|70)\\d{8}", + "GL": "(?:19|[2-689]\\d|70)\\d{4}", + "GD": "(?:473|[58]\\d\\d|900)\\d{7}", + "GP": "590\\d{6}|(?:69|80|9\\d)\\d{7}", + "GU": "(?:[58]\\d\\d|671|900)\\d{7}", + "GT": "80\\d{6}|(?:1\\d{3}|[2-7])\\d{7}", + "GG": "(?:1481|[357-9]\\d{3})\\d{6}|8\\d{6}(?:\\d{2})?", + "GN": "722\\d{6}|(?:3|6\\d)\\d{7}", + "GW": "[49]\\d{8}|4\\d{6}", + "GY": "(?:[2-8]\\d{3}|9008)\\d{3}", + "HT": "(?:[2-489]\\d|55)\\d{6}", "HM": "", - "VA": "^(?:\\+379)?\\d{8,12}$", - "HN": "^(?:\\+504)?[89]\\d{7}$", - "HK": "^(?:\\+852\\s?)?[456789]\\d{3}\\s?\\d{4}$", - "HU": "^(?:(?:\\+36))(\\s?\\d{2}\\s?\\d{3}\\s?\\d{4})$", - "IS": "^(?:\\+354)?\\d{7}$", - "IN": "^(?:(?:\\+|0{0,2})91\\s*[-]?\\s*|[0]?)?[6789]\\d{9}$", - "ID": "^(?:\\+?62|0[1-9])[\\s-]?\\d{2,4}[\\s-]?\\d{3,4}[\\s-]?\\d{3,4}$", - "IR": "^(?:\\+98)?\\d{10}$", - "IQ": "^(?:\\+964)?\\d{10}$", - "IE": "^(?:\\+353)?\\d{7,10}$", - "IM": "^(?:\\+44-1624)?\\d{6}$", - "IL": "^(?:(?:\\+972|0)(?:-)?)[23489]\\d{7}$", - "IT": "^(?:\\+39)?\\d{9,10}$", - "JM": "^(?:(?:\\+1876))\\d{7,10}$", - "JP": "^(?:\\+81)?\\d{10}$", - "JE": "^(?:\\+44-1534)?\\d{6}$", - "JO": "^(?:\\+962)?\\d{9}$", - "KZ": "^(?:\\+?7|8)?7\\d{9}$", - "KE": "^(?:(?:\\+254)|(?:0))(?:\\d{6,7})$", - "KI": "^(?:\\+686)?\\d{5}$", - "KP": "^\\+850\\d{6,9}$", - "KR": "^(?:\\+82)?\\d{8,11}$", - "KW": "^(?:\\+?965)[569]\\d{7}$", - "KG": "^(?:\\+996)?\\s?\\d{9}$", - "LA": "^(?:(?:\\+?856)|0)(20\\d{7,9})$", - "LV": "^(?:(?:\\+371)?2\\d{7})$", - "LB": "^(?:\\+961)?\\d{8}$", - "LS": "^(?:(?:\\+?266)|0)?[56]\\d{7}$", - "LR": "^(?:\\+231)[ -\\d]{4}[ -\\d]{4}$", - "LY": "^(?:\\+218)?\\d{9}$", - "LI": "^(?:\\+423)?\\d{7}$", - "LT": "^(?:(?:\\+370)|8)\\d{8}$", - "LU": "^(?:(?:\\+352)?(6|2(6|7|8|9))\\d{6})$", - "MO": "^(?:(?:\\+?853)|[0-9])?\\d{8}$", - "MG": "^(?:(?:\\+261)?3[234568]\\d{7})$", - "MW": "^(?:\\+265)[1-9]\\d{6}$", - "MY": "^(\\+?6?0)?(\\d{1,3})[-. ]?(\\d{7,8})$", - "MV": "^(?:(?:\\+?960)|0)?\\d{7}$", - "ML": "^(?:\\+223)?\\d{8}$", - "MT": "^(?:\\+356)?\\d{8}$", - "MH": "^(?:\\+692)?\\d{7}$", - "MQ": "^(?:\\+596)?\\d{9}$", - "MR": "^(?:\\+222)?\\d{8}$", - "MU": "^(?:\\+230|0)?\\d{8}$", - "YT": "^(?:\\+262)?\\d{9}$", - "MX": "^(?:(?:\\+?52)?\\s?(?:1|01)?\\s?)?(?:\\d{3}\\s?\\d{3}\\s?\\d{4})$", - "FM": "^(?:\\+691)?(?:\\d{7})$", - "MD": "^(?:(?:\\+373)|(?:0))(?:\\d{7,8})$", - "MC": "^(?:\\+377)?\\d{8,9}$", - "MN": "^(?:\\+976|0)\\d{8}$", - "ME": "^(?:(?:\\+382)?[67]\\d{7,20})$", - "MS": "^(?:\\+1-664)?\\d{7}$", - "MA": "^(?:(?:\\+?212(\\s*[-|\\s*]?\\d{1,9})?)|(?:0))(?:\\d{9})$", - "MZ": "^(?:(?:\\+258)|(?:258))?8[234567]\\d{7,8}$", - "MM": "^(?:(?:\\+?95)|0)?[1-9]\\d{9}$", - "NA": "^(?:(?:\\+264)|0)?\\d{8}$", - "NR": "^(?:\\+674)?\\d{7}$", - "NP": "^(?:(?:\\+977))?(\\d{9,10})$", - "NL": "^(?:(?:\\+31)|0(6(?:\\d{8})|[1-9](?:(?:\\d{8})|(?:\\s\\d{3}\\s\\d{4}))|(?:\\d{8})))$", - "NC": "^(?:\\+687)?\\d{6}$", - "NZ": "^(?:\\+?64|0)(\\d{2,5} \\d{4,8}|\\d{3,4} \\d{4})$", - "NI": "^(?:(?:\\+505))?(?:\\d{8})$", - "NE": "^(?:\\+227)?\\d{8}$", - "NG": "^(?:(?:\\+234)|(?:0))(?:\\d{7,8})$", - "NU": "^(?:\\+683)?\\d{4}$", - "NF": "^(?:\\+672)?\\d{6}$", - "MK": "^(?:\\+389|0)(?:(?:2[0-4]|[3-9])\\s?)?\\d{6}$", - "MP": "^(?:\\+1-670)?\\d{7}$", - "NO": "^(?:(?:\\+?47)|\\d{2}|\\d{3})\\s?\\d{2}\\s?\\d{3}$", - "OM": "^(?:\\+?968)?(?:95|96|97|98)\\d{6}$", - "PK": "^(?:(?:\\+92)|0)?[345]\\d{9}$", - "PW": "^(?:\\+680)?\\d{7}$", - "PS": "^(?:(?:\\+970))(5[2349])\\d{7}$", - "PA": "^(?:(?:\\+507)\\s?)?[46]\\d{6,7}$", - "PG": "^(?:\\+?675)?(?:[7-9]\\d{7})$", - "PY": "^(?:(?:\\+595|0)9[9876]\\d{7})$", - "PE": "^(?:(?:\\+51)|0)?(?:9\\d{8})$", - "PH": "^(?:(?:\\+?63)|0)(?:\\d{10})$", + "VA": "0\\d{5,10}|3[0-8]\\d{7,10}|55\\d{8}|8\\d{5}(?:\\d{2,4})?|(?:1\\d|39)\\d{7,8}", + "HN": "8\\d{10}|[237-9]\\d{7}", + "HK": "8[0-46-9]\\d{6,7}|9\\d{4,7}|(?:[2-7]|9\\d{3})\\d{7}", + "HU": "[235-7]\\d{8}|[1-9]\\d{7}", + "IS": "(?:38\\d|[4-9])\\d{6}", + "IN": "(?:000800|[2-9]\\d\\d)\\d{7}|1\\d{7,12}", + "ID": "(?:(?:00[1-9]|8\\d)\\d{4}|[1-36])\\d{6}|00\\d{10}|[1-9]\\d{8,10}|[2-9]\\d{7}", + "IR": "[1-9]\\d{9}|(?:[1-8]\\d\\d|9)\\d{3,4}", + "IQ": "(?:1|7\\d\\d)\\d{7}|[2-6]\\d{7,8}", + "IE": "(?:1\\d|[2569])\\d{6,8}|4\\d{6,9}|7\\d{8}|8\\d{8,9}", + "IM": "1624\\d{6}|(?:[3578]\\d|90)\\d{8}", + "IL": "1\\d{6}(?:\\d{3,5})?|[57]\\d{8}|[1-489]\\d{7}", + "IT": "0\\d{5,10}|1\\d{8,10}|3(?:[0-8]\\d{7,10}|9\\d{7,8})|(?:43|55|70)\\d{8}|8\\d{5}(?:\\d{2,4})?", + "JM": "(?:[58]\\d\\d|658|900)\\d{7}", + "JP": "00[1-9]\\d{6,14}|[257-9]\\d{9}|(?:00|[1-9]\\d\\d)\\d{6}", + "JE": "1534\\d{6}|(?:[3578]\\d|90)\\d{8}", + "JO": "(?:(?:[2689]|7\\d)\\d|32|53)\\d{6}", + "KZ": "(?:33622|8\\d{8})\\d{5}|[78]\\d{9}", + "KE": "(?:[17]\\d\\d|900)\\d{6}|(?:2|80)0\\d{6,7}|[4-6]\\d{6,8}", + "KI": "(?:[37]\\d|6[0-79])\\d{6}|(?:[2-48]\\d|50)\\d{3}", + "KP": "85\\d{6}|(?:19\\d|[2-7])\\d{7}", + "KR": "00[1-9]\\d{8,11}|(?:[12]|5\\d{3})\\d{7}|[13-6]\\d{9}|(?:[1-6]\\d|80)\\d{7}|[3-6]\\d{4,5}|(?:00|7)0\\d{8}", + "KW": "18\\d{5}|(?:[2569]\\d|41)\\d{6}", + "KG": "8\\d{9}|[235-9]\\d{8}", + "LA": "[23]\\d{9}|3\\d{8}|(?:[235-8]\\d|41)\\d{6}", + "LV": "(?:[268]\\d|90)\\d{6}", + "LB": "[27-9]\\d{7}|[13-9]\\d{6}", + "LS": "(?:[256]\\d\\d|800)\\d{5}", + "LR": "(?:[245]\\d|33|77|88)\\d{7}|(?:2\\d|[4-6])\\d{6}", + "LY": "[2-9]\\d{8}", + "LI": "[68]\\d{8}|(?:[2378]\\d|90)\\d{5}", + "LT": "(?:[3469]\\d|52|[78]0)\\d{6}", + "LU": "35[013-9]\\d{4,8}|6\\d{8}|35\\d{2,4}|(?:[2457-9]\\d|3[0-46-9])\\d{2,9}", + "MO": "0800\\d{3}|(?:28|[68]\\d)\\d{6}", + "MG": "[23]\\d{8}", + "MW": "(?:[1289]\\d|31|77)\\d{7}|1\\d{6}", + "MY": "1\\d{8,9}|(?:3\\d|[4-9])\\d{7}", + "MV": "(?:800|9[0-57-9]\\d)\\d{7}|[34679]\\d{6}", + "ML": "[24-9]\\d{7}", + "MT": "3550\\d{4}|(?:[2579]\\d\\d|800)\\d{5}", + "MH": "329\\d{4}|(?:[256]\\d|45)\\d{5}", + "MQ": "596\\d{6}|(?:69|80|9\\d)\\d{7}", + "MR": "(?:[2-4]\\d\\d|800)\\d{5}", + "MU": "(?:[57]|8\\d\\d)\\d{7}|[2-468]\\d{6}", + "YT": "(?:80|9\\d)\\d{7}|(?:26|63)9\\d{6}", + "MX": "[2-9]\\d{9}", + "FM": "(?:[39]\\d\\d|820)\\d{4}", + "MD": "(?:[235-7]\\d|[89]0)\\d{6}", + "MC": "(?:[3489]|6\\d)\\d{7}", + "MN": "[12]\\d{7,9}|[5-9]\\d{7}", + "ME": "(?:20|[3-79]\\d)\\d{6}|80\\d{6,7}", + "MS": "(?:[58]\\d\\d|664|900)\\d{7}", + "MA": "[5-8]\\d{8}", + "MZ": "(?:2|8\\d)\\d{7}", + "MM": "1\\d{5,7}|95\\d{6}|(?:[4-7]|9[0-46-9])\\d{6,8}|(?:2|8\\d)\\d{5,8}", + "NA": "[68]\\d{7,8}", + "NR": "(?:444|(?:55|8\\d)\\d|666)\\d{4}", + "NP": "(?:1\\d|9)\\d{9}|[1-9]\\d{7}", + "NL": "(?:[124-7]\\d\\d|3(?:[02-9]\\d|1[0-8]))\\d{6}|8\\d{6,9}|9\\d{6,10}|1\\d{4,5}", + "NC": "(?:050|[2-57-9]\\d\\d)\\d{3}", + "NZ": "[1289]\\d{9}|50\\d{5}(?:\\d{2,3})?|[27-9]\\d{7,8}|(?:[34]\\d|6[0-35-9])\\d{6}|8\\d{4,6}", + "NI": "(?:1800|[25-8]\\d{3})\\d{4}", + "NE": "[027-9]\\d{7}", + "NG": "2[0-24-9]\\d{8}|[78]\\d{10,13}|[7-9]\\d{9}|[1-9]\\d{7}|[124-7]\\d{6}", + "NU": "(?:[4-7]|888\\d)\\d{3}", + "NF": "[13]\\d{5}", + "MK": "[2-578]\\d{7}", + "MP": "[58]\\d{9}|(?:67|90)0\\d{7}", + "NO": "(?:0|[2-9]\\d{3})\\d{4}", + "OM": "(?:1505|[279]\\d{3}|500)\\d{4}|800\\d{5,6}", + "PK": "122\\d{6}|[24-8]\\d{10,11}|9(?:[013-9]\\d{8,10}|2(?:[01]\\d\\d|2(?:[06-8]\\d|1[01]))\\d{7})|(?:[2-8]\\d{3}|92(?:[0-7]\\d|8[1-9]))\\d{6}|[24-9]\\d{8}|[89]\\d{7}", + "PW": "(?:[24-8]\\d\\d|345|900)\\d{4}", + "PS": "[2489]2\\d{6}|(?:1\\d|5)\\d{8}", + "PA": "(?:00800|8\\d{3})\\d{6}|[68]\\d{7}|[1-57-9]\\d{6}", + "PG": "(?:180|[78]\\d{3})\\d{4}|(?:[2-589]\\d|64)\\d{5}", + "PY": "59\\d{4,6}|9\\d{5,10}|(?:[2-46-8]\\d|5[0-8])\\d{4,7}", + "PE": "(?:[14-8]|9\\d)\\d{7}", + "PH": "(?:[2-7]|9\\d)\\d{8}|2\\d{5}|(?:1800|8)\\d{7,9}", "PN": "", - "PL": "^(?:(?:\\+48)?(?:\\s?\\d{3}\\s?\\d{3}\\s?\\d{3}|(?:\\d{2}\\s?){4}\\d{2}|\\d{3}-\\d{3}-\\d{3}))$", - "PT": "^(?:(?:\\+351)?9(1\\d|2[1-9]|6[12345789]|7[12345789])\\d{7})$", - "PR": "^(?:(?:\\+1)?787|939)\\d{7}$", - "QA": "^(?:\\+?974)?-?33\\d{5}$", - "RE": "^(?:\\+262)?\\d{9}$", - "RO": "^(?:(?:\\+40|0))(?:7[2-8]\\d{7}|21\\d{8})$", - "RU": "^(?:\\+?7|8)?[ -]?\\(?9\\d{2}\\)?[ -]?\\d{3}[ -]?\\d{2}[ -]?\\d{2}$", - "RW": "^(?:(?:\\+250)|(0))\\d{9}$", - "BL": "^(?:\\+590)?(?:\\d{9})$", - "SH": "^\\+290\\d{4,5}$", - "KN": "^(?:\\+1-869)?\\d{7}$", - "LC": "^(?:\\+1-758)?\\d{7}$", - "MF": "^(?:\\+590)?\\d{9}$", - "PM": "^(?:\\+508)?\\d{6}$", - "VC": "^(?:(?:\\+1)?784)?(?:\\d{3})?\\d{7}$", - "WS": "^(?:\\+685)?\\d{5}$", - "SM": "^(?:(?:\\+378)|(0549|6\\d{4}))\\d{5}$", - "ST": "^(?:\\+239)?\\d{7}$", - "SA": "^(?:\\+?966)?\\s?1?[\\s-]?(?:[45]\\d{2}|5\\d{3})[\\s-]?\\d{4}$", - "SN": "^(?:(?:\\+221)|0)?[3679]\\d{7}$", - "RS": "^(?:(?:\\+381)|0)([0-6]|[7][012345])[0-9]{5,10}$", - "SC": "^(?:(?:\\+248)|\\d{4})\\d{5}$", - "SL": "^(?:(?:\\+232)|(?:0))?\\d{9}$", - "SG": "^(?:(?:\\+65)|(?:\\(\\+65\\))|(?:65))?\\d{4}\\d{4}$", - "SX": "^(?:\\+1-721)?\\d{7}$", - "SK": "^(?:(?:\\+421))?(0|9[0-8])\\d{8}$", - "SI": "^(?:(?:\\+386)|0)?[1-59]\\d{7,8}$", - "SB": "^(?:\\+677)?\\d{5}$", - "SO": "^(?:\\+252|0)?[567]\\d{7}$", - "ZA": "^(?:(?:\\+27)|0)(\\d{9})$", + "PL": "(?:6|8\\d\\d)\\d{7}|[1-9]\\d{6}(?:\\d{2})?|[26]\\d{5}", + "PT": "1693\\d{5}|(?:[26-9]\\d|30)\\d{7}", + "PR": "(?:[589]\\d\\d|787)\\d{7}", + "QA": "800\\d{4}|(?:2|800)\\d{6}|(?:0080|[3-7])\\d{7}", + "RE": "(?:26|[689]\\d)\\d{7}", + "RO": "(?:[236-8]\\d|90)\\d{7}|[23]\\d{5}", + "RU": "8\\d{13}|[347-9]\\d{9}", + "RW": "(?:06|[27]\\d\\d|[89]00)\\d{6}", + "BL": "590\\d{6}|(?:69|80|9\\d)\\d{7}", + "SH": "(?:[256]\\d|8)\\d{3}", + "KN": "(?:[58]\\d\\d|900)\\d{7}", + "LC": "(?:[58]\\d\\d|758|900)\\d{7}", + "MF": "590\\d{6}|(?:69|80|9\\d)\\d{7}", + "PM": "[45]\\d{5}|(?:708|80\\d)\\d{6}", + "VC": "(?:[58]\\d\\d|784|900)\\d{7}", + "WS": "(?:[2-6]|8\\d{5})\\d{4}|[78]\\d{6}|[68]\\d{5}", + "SM": "(?:0549|[5-7]\\d)\\d{6}", + "ST": "(?:22|9\\d)\\d{5}", + "SA": "92\\d{7}|(?:[15]|8\\d)\\d{8}", + "SN": "(?:[378]\\d|93)\\d{7}", + "RS": "38[02-9]\\d{6,9}|6\\d{7,9}|90\\d{4,8}|38\\d{5,6}|(?:7\\d\\d|800)\\d{3,9}|(?:[12]\\d|3[0-79])\\d{5,10}", + "SC": "800\\d{4}|(?:[249]\\d|64)\\d{5}", + "SL": "(?:[237-9]\\d|66)\\d{6}", + "SG": "(?:(?:1\\d|8)\\d\\d|7000)\\d{7}|[3689]\\d{7}", + "SX": "7215\\d{6}|(?:[58]\\d\\d|900)\\d{7}", + "SK": "[2-689]\\d{8}|[2-59]\\d{6}|[2-5]\\d{5}", + "SI": "[1-7]\\d{7}|8\\d{4,7}|90\\d{4,6}", + "SB": "[6-9]\\d{6}|[1-6]\\d{4}", + "SO": "[346-9]\\d{8}|[12679]\\d{7}|[1-5]\\d{6}|[1348]\\d{5}", + "ZA": "[1-79]\\d{8}|8\\d{4,9}", "GS": "", - "SS": "^(?:\\+211|0)?[1-9]\\d{7,9}$", - "ES": "^(?:\\+34)?(?:\\d{9})$", - "LK": "^(?:(?:\\+94)|0)(?:\\d{9})$", - "SD": "^(?:\\+249)?\\d{9}$", - "SR": "^(?:(?:\\+597))\\d{7}$", - "SJ": "^\\+47\\d{8}$", - "SE": "^(?:\\+?46|0)\\s?[1-57-9](?:[0-9]\\s?){8}$", - "CH": "^(?:(?:\\+41|0)(?:\\s*\\(?0\\)?\\s*))?(?:\\d{2}\\s*)?\\d{3}\\s*\\d{2}\\s*\\d{2}$", - "SY": "^(?:\\+963)?\\d{9}$", - "TW": "^(?:(?:\\+886)|0)?9\\d{8}$", - "TJ": "^(?:(?:\\+992))(37|55|77)\\d{7}$", - "TZ": "^(?:(?:\\+?255)|0)?[67]\\d{8}$", - "TH": "^(?:(?:\\+66)|0)\\d{9}$", - "TL": "^(?:(?:\\+670)\\s?)?[0-9]{3}\\s?[0-9]{3,4}$", - "TG": "^(?:(?:\\+228))\\d{8}$", - "TK": "^\\+690\\d{4}$", - "TO": "^(?:\\+676)?\\d{5}$", - "TT": "^(?:(?:\\+?1-868)|\\(?868\\)?)(\\d{7})$", - "TN": "^(?:(?:\\+216)|22|9[1-9])\\d{7}$", - "TR": "^(?:(?:\\+90)|(0))\\s?5\\d{9}$", - "TM": "^(?:\\+993)?\\d{8}$", - "TC": "^(?:\\+1-649)?\\d{7}$", - "TV": "^(?:\\+688)?\\d{5}$", - "UG": "^(?:(?:\\+256)|0)?[39]\\d{8}$", - "UA": "^(?:(?:\\+380)|(0))?(39|50|63|66|67|68|91|92|93|94|95|96|97|98|99)\\d{7}$", - "AE": "^(?:\\+?971|0)?(?:2|3|4|6|7|9)\\d{8}$", - "GB": "^(?:(?:\\+44\\s?|0)7\\d{3}(\\s?\\d{4,})?)$", + "SS": "[19]\\d{8}", + "ES": "[5-9]\\d{8}", + "LK": "[1-9]\\d{8}", + "SD": "[19]\\d{8}", + "SR": "(?:[2-5]|68|[78]\\d)\\d{5}", + "SJ": "0\\d{4}|(?:[489]\\d|79)\\d{6}", + "SE": "(?:[26]\\d\\d|9)\\d{9}|[1-9]\\d{8}|[1-689]\\d{7}|[1-4689]\\d{6}|2\\d{5}", + "CH": "8\\d{11}|[2-9]\\d{8}", + "SY": "[1-39]\\d{8}|[1-5]\\d{7}", + "TW": "[2-689]\\d{8}|7\\d{9,10}|[2-8]\\d{7}|2\\d{6}", + "TJ": "[0-57-9]\\d{8}", + "TZ": "(?:[25-8]\\d|41|90)\\d{7}", + "TH": "(?:001800|[2-57]|[689]\\d)\\d{7}|1\\d{7,9}", + "TL": "7\\d{7}|(?:[2-47]\\d|[89]0)\\d{5}", + "TG": "[279]\\d{7}", + "TK": "[2-47]\\d{3,6}", + "TO": "(?:0800|(?:[5-8]\\d\\d|999)\\d)\\d{3}|[2-8]\\d{4}", + "TT": "(?:[58]\\d\\d|900)\\d{7}", + "TN": "[2-57-9]\\d{7}", + "TR": "4\\d{6}|8\\d{11,12}|(?:[2-58]\\d\\d|900)\\d{7}", + "TM": "(?:[1-6]\\d|71)\\d{6}", + "TC": "(?:[58]\\d\\d|649|900)\\d{7}", + "TV": "(?:2|7\\d\\d|90)\\d{4}", + "UG": "800\\d{6}|(?:[29]0|[347]\\d)\\d{7}", + "UA": "[89]\\d{9}|[3-9]\\d{8}", + "AE": "(?:[4-7]\\d|9[0-689])\\d{7}|800\\d{2,9}|[2-4679]\\d{7}", + "GB": "[1-357-9]\\d{9}|[18]\\d{8}|8\\d{6}", "UM": "", - "US": "^(\\+\\d{1,2}\\s?)?([2-9]{1}\\d{2}[2-9]{1}\\d{6})$", - "UY": "^(?:(?:\\+598|0)\\s?(9\\d{3}|2\\d{2}|[4-9]\\d{6}))$", - "UZ": "^(?:\\+?998)?\\s?[3456789]\\d{8}$", - "VU": "^(?:\\+678)?\\d{7}$", - "VE": "^(?:(?:\\+58)|0)?4\\d{9}$", - "VN": "^(?:(?:\\+84)|0)?[1-9]\\d{8}$", - "VG": "^(?:\\+1-284)?\\d{7}$", - "VI": "^(?:\\+1-340)?\\d{7}$", - "WF": "^(?:\\+681)?\\d{6}$", - "EH": "^(?:\\+212)?(?:\\d{9})$", - "YE": "^(?:\\+?967)?(?:\\d{7,8})$", - "ZM": "^(?:(?:\\+260)|0)?[123456789]\\d{8,9}$", - "ZW": "^(?:(?:\\+263)|0)?(?:\\d{9,10})$", - "XK": "^\\+383\\s\\d{3}\\s\\d{3}\\s\\d{3}$", + "US": "[2-9]\\d{9}|3\\d{6}", + "UY": "0004\\d{2,9}|[1249]\\d{7}|(?:[49]\\d|80)\\d{5}", + "UZ": "(?:20|33|[5-79]\\d|88)\\d{7}", + "VU": "[57-9]\\d{6}|(?:[238]\\d|48)\\d{3}", + "VE": "[68]00\\d{7}|(?:[24]\\d|[59]0)\\d{8}", + "VN": "[12]\\d{9}|[135-9]\\d{8}|[16]\\d{7}|[16-8]\\d{6}", + "VG": "(?:284|[58]\\d\\d|900)\\d{7}", + "VI": "[58]\\d{9}|(?:34|90)0\\d{7}", + "WF": "(?:40|72)\\d{4}|8\\d{5}(?:\\d{3})?", + "EH": "[5-8]\\d{8}", + "YE": "(?:1|7\\d)\\d{7}|[1-7]\\d{6}", + "ZM": "800\\d{6}|(?:21|63|[79]\\d)\\d{7}", + "ZW": "2(?:[0-57-9]\\d{6,8}|6[0-24-9]\\d{6,7})|[38]\\d{9}|[35-8]\\d{8}|[3-6]\\d{7}|[1-689]\\d{6}|[1-3569]\\d{5}|[1356]\\d{4}", + "XK": "2\\d{7,8}|3\\d{7,11}|(?:4\\d\\d|[89]00)\\d{5}", "FW": "^\\+590\\s\\d{2}\\s\\d{2}\\s\\d{2}\\s\\d{2}$", "YT-UNF": "^(?:\\+262)?\\d{9}$", "BQ-BO": "", diff --git a/packages/i18nify-js/src/modules/phoneNumber/isValidPhoneNumber.ts b/packages/i18nify-js/src/modules/phoneNumber/isValidPhoneNumber.ts index efcb3afe..23c931e8 100644 --- a/packages/i18nify-js/src/modules/phoneNumber/isValidPhoneNumber.ts +++ b/packages/i18nify-js/src/modules/phoneNumber/isValidPhoneNumber.ts @@ -1,6 +1,11 @@ import PHONE_REGEX_MAPPER from './data/phoneRegexMapper.json'; import { withErrorBoundary } from '../../common/errorBoundary'; -import { detectCountryAndDialCodeFromPhone, cleanPhoneNumber } from './utils'; +import { + detectCountryAndDialCodeFromPhone, + cleanPhoneNumber, + matchesEntirely, + getPhoneNumberWithoutDialCode, +} from './utils'; import { CountryCodeType } from '../types'; // Validates whether a given phone number is valid based on the provided country code or auto-detects the country code and checks if the number matches the defined regex pattern for that country. @@ -13,11 +18,12 @@ const isValidPhoneNumber = ( if (!cleanedPhoneNumber) return false; const regexMapper = PHONE_REGEX_MAPPER; + const phoneInfo = detectCountryAndDialCodeFromPhone(cleanedPhoneNumber); // Detect or validate the country code countryCode = ( countryCode && countryCode in regexMapper ? countryCode - : detectCountryAndDialCodeFromPhone(cleanedPhoneNumber).countryCode + : phoneInfo.countryCode ) as CountryCodeType; // Return false if phoneNumber is empty @@ -25,10 +31,16 @@ const isValidPhoneNumber = ( // Check if the countryCode exists in the PHONE_REGEX_MAPPER if (countryCode in regexMapper) { + const phoneNumberWithoutDialCode = + getPhoneNumberWithoutDialCode(cleanedPhoneNumber); + // Fetch the regex pattern for the countryCode - const regex = new RegExp(regexMapper[countryCode]); + const regex = regexMapper[countryCode]; // Test if the cleanedPhoneNumber matches the regex pattern - return regex.test(cleanedPhoneNumber as string); + return matchesEntirely( + phoneNumberWithoutDialCode as string, + regex as string, + ); } // Return false if the countryCode is not supported diff --git a/packages/i18nify-js/src/modules/phoneNumber/types.ts b/packages/i18nify-js/src/modules/phoneNumber/types.ts index ece2bca6..8ce925fc 100644 --- a/packages/i18nify-js/src/modules/phoneNumber/types.ts +++ b/packages/i18nify-js/src/modules/phoneNumber/types.ts @@ -13,3 +13,12 @@ export interface GetMaskedPhoneNumberOptions { phoneNumber?: string; maskingOptions?: MaskingOptions; } + +export interface PhoneNumberMockEntry { + PhoneNumber: string; + isValid: boolean; +} + +export interface PhoneNumbersMockData { + [countryCode: string]: PhoneNumberMockEntry[]; +} \ No newline at end of file diff --git a/packages/i18nify-js/src/modules/phoneNumber/utils.ts b/packages/i18nify-js/src/modules/phoneNumber/utils.ts index bc6380de..5194e86e 100644 --- a/packages/i18nify-js/src/modules/phoneNumber/utils.ts +++ b/packages/i18nify-js/src/modules/phoneNumber/utils.ts @@ -48,10 +48,17 @@ export const detectCountryAndDialCodeFromPhone = ( // Filter matching countries based on phone number validation regex const matchedCountryCode = matchingCountries.find((country) => { - const regex = new RegExp( - regexMapper[country.countryCode as CountryCodeType], + const phoneNumberWithoutDialCode = String(phoneNumber).replace( + country.dialCode, + '', ); - if (regex && regex.test(phoneNumber.toString())) return country; + + const regex = regexMapper[country.countryCode as CountryCodeType]; + if ( + regex && + matchesEntirely(phoneNumberWithoutDialCode as string, regex as string) + ) + return country; return undefined; }); @@ -68,6 +75,13 @@ export const detectCountryAndDialCodeFromPhone = ( return { countryCode: '' as CountryCodeType, dialCode: '' }; }; +export const getPhoneNumberWithoutDialCode = (phoneNumber: string | number) => { + const cleanedPhoneNumber = cleanPhoneNumber(String(phoneNumber)); + const { dialCode } = detectCountryAndDialCodeFromPhone(cleanedPhoneNumber); + + return String(cleanedPhoneNumber).replace(dialCode, ''); +}; + export const cleanPhoneNumber = (phoneNumber: string) => { // Regular expression to match all characters except numbers and + sign at the start const regex = /[^0-9+]|(?!A)\+/g; @@ -162,3 +176,8 @@ export const alternateMasking = ( ) .result.join(''); }; + +export const matchesEntirely = (text: string, regular_expression: string) => { + text = text || ''; + return new RegExp('^(?:' + regular_expression + ')$').test(text); +};