Есть клиентская база, в которую заносятся номера в формате:
0000000000
Нужен скрипт, который преобразует в:
"+7(000)000-00-00"
Поле, в которое заносятся номера, именуется как: $line['f5091'].
Пробовал так:
const numberValueReduced = `$line['f5091']` => {
return phone.replace('/^(\d{3})(\d{3})(\d{2})(\d{2})$/iu', '+7 ($1) $2-$3-$4', $int);
};
Не вышло.
Пробовал так:
const numberValueReduced = $line['f5091'] => {
return phone.replace('/^(\d{3})(\d{3})(\d{2})(\d{2})$/iu', '+7 ($1) $2-$3-$4', $int); };
Не вышло.
Это очевидный копипаст из похапэ, но все же объясню, почему он не работает:
replace передаете строку с регулярным выражением (вместо самого регулярного выражения)i - у числовых символов нет регистра; u - только если входная строка содержит юникод-последовательности)reduce третий аргумент
Пример кода:
const numberValueReduced = phone => {
return phone.replace(/^(\d{3})(\d{3})(\d{2})(\d{2})$/, '+7 ($1) $2-$3-$4');
};
let btnTest = document.getElementById('test'),
result = document.getElementById('result');
btnTest.addEventListener('click', () => {
let nmbr = rnd(10),
frmtd = numberValueReduced(nmbr);
result.innerHTML = `${nmbr}<br>${frmtd}`;
});
function rnd(n) {
let str = '';
while (n-- > 0)
str += Math.floor(Math.random() * 10);
return str;
}
body,
button {
font: 16px sans-serif;
text-align: center;
}
#result {
min-height: 70px;
margin-top: 30px;
font-size: 20px;
}
#test {
width: 250px; height: 35px;
border: 0;
text-transform: uppercase;
background-color: #44d; color: #fff;
box-shadow: 0 2px 8px -2px #0007;
}
<div id="result"></div>
<button id="test">Случайный номер</button>
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости