Маска номер телефона США с JavaScript

Мне нужен обычный экспресс для формата номера телефона США. Я хочу заменить строку номера телефона на формат строки номера телефона США в JavaScript.

var number = "4031234789";

И я хочу замаскировать его в следующем формате: -

number = number.mask('(000) 000-0000');

Может ли кто-нибудь показать мне регулярное выражение для этого в JavaScript?

Ответ 1

Этот ответ предполагает, что вы хотите следующий формат: (000) 000-0000 (как указано в OP).

Существует несколько различных способов реализации этого, но здесь есть несколько разных подходов:


Если вы хотите просто замаскировать номер в событии blur (когда поле теряет focus), вы можете использовать следующее:

document.getElementById('phone').addEventListener('blur', function (e) {
  var x = e.target.value.replace(/\D/g, '').match(/(\d{3})(\d{3})(\d{4})/);
  e.target.value = '(' + x[1] + ') ' + x[2] + '-' + x[3];
});
<p>Masked on the blur event (remove focus).</p>
<input type="text" id="phone" placeholder="(555) 555-5555"/>

Ответ 2

Вы можете использовать регулярное выражение и затем конкатенировать, чтобы сформировать свою строку.

var USNumber = "4031234789".match(/(\d{3})(\d{3})(\d{4})/);<br/>
USNumber = "(" + USNumber[1] + ") " + USNumber[2] + "-" + USNumber[3];

Ответ 4

Вы можете использовать мой пакет https://github.com/jsonmaur/coverup, который может замаскировать строку при размытии и сохранить символы в строке.