Last active
July 24, 2020 07:12
-
-
Save littlefuntik/d268e2bfd71f7a0278f5 to your computer and use it in GitHub Desktop.
Преобразование пользовательской строки номера телефона в международный формат (Украина) в Javascript
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// | |
// Исходные данные | |
// | |
var phone = "0631112233"; | |
// | |
// Логика преобразований | |
// | |
var phone_is_valid = false; | |
var phone_numeric = new String(phone).replace(/[^\d]+/g, ""); | |
var phone_formatted = ""; | |
if(phone_numeric.length == 12) { | |
// Номер в международном формате | |
if(phone_numeric.substr(0, 2) == "38") { | |
// Украинский номер | |
phone_is_valid = true; | |
phone_formatted = phone_numeric.replace(/(\d{2})(\d{3})(\d{3})(\d{4})/, "+$1 ($2) $3-$4"); | |
console.log("Номер в международном формате"); | |
} else { | |
console.log("Номер не украинский"); | |
} | |
} else if(phone_numeric.length == 10) { | |
// Сокращенный номер без начальных цыфр 38 | |
phone_is_valid = true; | |
phone_formatted = phone_numeric.replace(/(\d{3})(\d{3})(\d{4})/, "+38 ($2) $3-$4"); | |
console.log("Сокращенный номер без начальных цыфр 38"); | |
} | |
// На данном этапе: | |
// @var {bool} phone_is_valid Номер введен корректно | |
// @var {string} phone_formatted Если номер правильный, то значение - отформатированный номер телефона по шаблону "+38 (099) 999-9999", иначе - пустая строка | |
if(phone_is_valid) | |
console.log("Преобразованный номер телефона: " + phone_formatted); | |
else | |
console.log("Неправильный номер телефона"); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment