let countriesStart = { "gb": "44", "it": "39", "ca": "1", "se": "46", "hk": "852", "jp": "81", "de": "49", "il": "972", "pr": "1", "mx": "52", "au": "61", "sg": "65", "cn": "86", "us": "1", "mt": "356" }; let countriesLenght = { "gb": "10", "it": "9,13", "ca": "10", "se": "7,10", "hk": "8", "jp": "10", "de": "10,11", "il": "9", "pr": "10", "mx": "10", "au": "9", "sg": "8", "cn": "11,13", "us": "10", "mt": "8" }; function checkPhoneNumber(nation, numberToCheck) { numberToCheck = numberToCheck.replaceAll(' ', ''); if (numberToCheck.startsWith("+")) { numberToCheck = numberToCheck.slice(1); let regexStartString = '^' + countriesStart[nation]; let regexLenghtString = '[0-9]{' + countriesLenght[nation] + '}'; let regexStartEspr = new RegExp(regexStartString); let regexLenghtEspr = new RegExp(regexLenghtString); let check1 = regexStartEspr.test(numberToCheck); numberToCheck = numberToCheck.slice(countriesStart[nation].lenght); let check2 = regexLenghtEspr.test(numberToCheck); if (check1 == true && check2 == true) { return true; } else { return false; } } return false; } function checkPhoneNumberNoNation(numberToCheck) { numberToCheck = numberToCheck.replaceAll(' ', ''); if (numberToCheck.startsWith("+")) { numberToCheck = numberToCheck.slice(1); for ([key, val] of Object.entries(countriesStart)) { let regexStartString = '^' + val; let regexLenghtString = '[0-9]{' + countriesLenght[key] + '}'; let regexStartEspr = new RegExp(regexStartString); let regexLenghtEspr = new RegExp(regexLenghtString); let check1 = regexStartEspr.test(numberToCheck); numberToCheck2 = numberToCheck.slice(val.lenght); let check2 = regexLenghtEspr.test(numberToCheck2); if (check1 == true && check2 == true) { return true; } } } return false; }