18 lines
737 B
JavaScript
18 lines
737 B
JavaScript
/**
|
|
* Форматирует строку в маску +7 (___) ___-__-__.
|
|
* Принимает любой ввод — чистит всё кроме цифр.
|
|
*
|
|
* @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;
|
|
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;
|
|
}
|