Как отформатировать номер телефона США с помощью цикла foreach? - PullRequest
0 голосов
/ 17 января 2019

Использование логики someStringArray.indexOf() в цикле forEach срабатывает, когда элемент имеет повторяющиеся числа.

Я пытаюсь взять номер телефона США и отформатировать его как (xxx)xxx-xxxx, используя изначально 10-значный номер в качестве строки. Затем преобразование в массив, чтобы я мог пройти по нему и отформатировать.

"use strict";

let tel = 5149100499;
let telStr = tel.toString();
let ntel = telStr.split('');

ntel.forEach(char => {
  let d = ntel.indexOf(char);
  if(ntel.indexOf(char) === 0) {
      ntel.splice(d,0,"(");
  }else if(ntel.indexOf(char) === 4){
      ntel.splice(d,0,")");
  }else if(ntel.indexOf(char, 7) === 9){
      ntel.splice(d,0,"-");
  }

});

let ntelStr = ntel.join('');

  console.log(ntelStr);

В идеале вывод должен быть: ntelStr = (514)910-0499

Ответы [ 2 ]

0 голосов
/ 17 января 2019

Вы можете использовать string#replace для преобразования телефонного номера в нужный формат.

"use strict";

let tel = 5149100499,
    result = tel.toString().replace(/(\d{3})(\d{3})(\d{4})/,'($1)$2-$3');
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0;}
0 голосов
/ 17 января 2019

var tel = 5149100499;
var s = tel.toString();
s = `(${s.substring(0, 3)})${s.substring(3,6)}-${s.substring(6,10)}`
console.log(s);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...