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 сценариями:
Если он имеет 12 цифр или меньше, чем 9 цифр, ничего не делайте.
Если в нем 11 цифр, удалите первую цифру, в моем случае это всегда "4".
Если в нем 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
}