fixed code v3

This commit is contained in:
SlimusMinus
2026-08-12 23:28:35 +03:00
parent 2ed8f440dd
commit 2b9cb62c72
5 changed files with 79 additions and 28 deletions

View File

@@ -1,17 +1,21 @@
/**
* Форматирует строку в маску +7 (___) ___-__-__.
* Принимает любой ввод — чистит всё кроме цифр.
* Поддерживает ввод с "7" или "8" в начале (стандартный
* российский формат телефонного номера).
*
* @param {string} val — сырое значение из input
* @returns {string} — отформатированная строка
*/
export function formatPhone(val) {
const digits = val.replace(/\D/g, "");
const local = digits.startsWith("7") ? digits.slice(1) : digits;
const local = digits.startsWith("7") || digits.startsWith("8")
? digits.slice(1)
: digits;
let result = "+7";
if (local.length > 0) result += " (" + local.slice(0, 3);
if (local.length >= 3) result += ") " + local.slice(3, 6);
if (local.length >= 6) result += "-" + local.slice(6, 8);
if (local.length >= 8) result += "-" + local.slice(8, 10);
return result;
}
}