@Coder321

Как правильно парсить номер телефона?

Мне нужно как то отпарсить входящий номер телефона. То есть:
1) с входящей строки удалить все что не есть числом;
2) если номер начинается на определенные цыфры заменить их друими.

Пока что сделал через цыкл но как то это выглядит не очень, может есть другие варианты?
function parseMobile(mobile) {

    let mob = [];
    let number;

    for (let i = 0; i < String(mobile).length; i++) {
        number = parseFloat(mobile[i]);
        if (!isNaN(number)) mob.push(number);
    };

    if ((mob[0] === 0) && (mob[1] === 3) && (mob[2] === 3)) {
        if (mob.length === 10) {
            mob.splice(0, 1);
            return '777' + mob.join('');
        }
    }
    return mob.join('');
}
  • Вопрос задан
  • 843 просмотра
Решения вопроса 1
@Sayonji
Делайте регуляркой:
function parseMobile(mobile) {
  let mob = String(mobile).replace(/[^0-9]/g, '')
  if (mob.length === 10 && mob.substr(0, 3) === '033')
    mob = '777' + mob.substr(1)
  return mob
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Rou1997
@Rou1997
1) с входящей строки удалить все что не есть числом;

В цикле пройти по всем символам и проверить каждый, для isDigit лучше написать специальную функцию, Гугл в помощь "javascript check if char is digit", формировать новую строку и в нее в этом цикле помещать только символы-числа.

2) если номер начинается на определенные цыфры заменить их друими.

Это элементарно, уже после того как сделали первое.

И главное, во-первых такой алгоритм лучше реализовывать на сервере, все равно он там понадобится для валидации, во-вторых в интернете есть фреймворки, библиотеки и просто готовые примеры, но их надо уметь искать.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 18:38
1500 руб./в час
19 апр. 2024, в 18:36
1500 руб./за проект
19 апр. 2024, в 18:36
30000 руб./за проект