Skip to content

Instantly share code, notes, and snippets.

@littlefuntik
Last active July 24, 2020 07:12
Show Gist options
  • Save littlefuntik/d268e2bfd71f7a0278f5 to your computer and use it in GitHub Desktop.
Save littlefuntik/d268e2bfd71f7a0278f5 to your computer and use it in GitHub Desktop.
Преобразование пользовательской строки номера телефона в международный формат (Украина) в Javascript
//
// Исходные данные
//
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