Google Script переформатирует номер телефона приложения

У меня есть база данных журнала вызовов в электронных таблицах Google, созданная апплетом IFTTT. Затем эта БД отправляется в частный веб-API с помощью GAS с помощью команд url.fetch (если вы заинтересованы, вы можете найти сообщение здесь с кодом). Для актуальности. Используя триггер onChange для автоматизации, я переформатирую данные и затем извлекаю lastROW в API каждый раз, когда IFTTT вставляет новую строку.

Это работает, но у меня проблема с форматом номера телефона. Формат, который я получаю от IFTTT, не соответствует, например, ~80% телефонных номеров имеют такой формат, как "40727000000"(11 цифр №) или "727000000"(9 цифр №), остальные являются международными номер телефона. или робот номер телефона отформатированный как "393280000000" (12 цифр №) или менее 9 цифр нет. для робота. Теперь формат, который я отправляю в API, должен состоять из 10 цифр. как 0727000000 (но только для этих ~80% номеров международные номера и номера роботов должны оставаться неизменными).

Итак, по сути, мне нужно написать функцию в GAS с 3 сценариями:

  1. Если он имеет 12 цифр или меньше, чем 9 цифр, ничего не делайте.

  2. Если в нем 11 цифр, удалите первую цифру, в моем случае это всегда "4".

  3. Если в нем 9 цифр, добавьте "0" перед "7", это всегда "7".

Спасибо!

1 ответ

Решение

Вот решение:

function formatDigits(number) {

  var num = number.toString();
  var length = num.length;

  if(num.length == 11){

    num = num.substring(1,11);

    return num;

  }
  if(num.length == 9){

    num = "0" + num;

    return num;

  }

  return 0; // or return num; Depending how you want to deal with other case

}
Другие вопросы по тегам