Модуль:Phone
Перейти к навигации
Перейти к поиску
Для документации этого модуля может быть создана страница Модуль:Phone/doc
local p = {}
-- Форматирует телефон: +79237017325 -> +7 (923) 701-73-25
function p.format(frame)
local s = frame.args[1] or ''
return p._format(s)
end
function p._format(s)
if not s then return '' end
s = tostring(s):gsub('[^0-9+]', '')
-- нормализация ведущей 8
if s:sub(1,1) == '8' then
s = '7' .. s:sub(2)
end
if s:sub(1,1) ~= '+' then
if s:sub(1,1) == '7' then
s = '+' .. s
else
return s
end
end
local digits = s:gsub('[^0-9]', '')
if #digits == 11 and digits:sub(1,1) == '7' then
return string.format('+7 (%s) %s-%s-%s',
digits:sub(2,4), digits:sub(5,7), digits:sub(8,9), digits:sub(10,11))
end
return s
end
return p