-1

我在IFTTT Applet生成的Google電子表格中有一個呼叫日誌數據庫。 然後通過使用url.fetch命令(如果您感興趣,您可以在代碼中找到Post Here)通過GAS將此DB發送到專用Web API。相關性。使用onChange觸發器進行自動化,我重新格式化數據,然後每次由IFTTT插入新行時將lastROW提取到API。Google應用腳本電話號碼重新格式化

它的工作,但我有一個電話號碼格式的問題。我從IFTTT得到的格式並不一致,例如,大約80%的電話號碼的格式爲「40727000000」(11位數字)或「727000000」(9位數字),其餘均爲國際電話號碼。或機器人電話號碼。如此格式化「393280000000」(12位數字)或小於9位數字。爲機器人。 現在我發送給API的格式需要是10位數字。如0727000000(但只有那些〜80%的數字,國際和機器人數量需要保持不變)。

因此,在本質上我需要寫在氣體的功能有3個場景:

  1. 如果有12位或少於9個數字,什麼也不做。

  2. 如果它有11位數字刪除第一個數字,在我的情況下總是「4」。

  3. 如果它有9位數字,在「7」前加「0」,它總是「7」。

謝謝!

+1

規格似乎很清楚,在多大程度上有*你*得到了與實施? – pnuts

+0

對不起,因爲我問了這麼一個愚蠢的問題。但是我的編碼技能都是空白的,我在這個論壇的不同用戶的幫助下完成了這個腳本,並在網上進行了大量的搜索。所以再次抱歉侮辱任何人! –

回答

0

這裏是一個解決方案:

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 

} 
+0

謝謝你,我將標記爲已接受的答案,但你犯了一些錯誤。這裏是工作的'code'function reformatDigits(number){var_type = number.toString(); var length = num.length;如果(長度== 11){num = num.substring(1,11); return num; } if(length == 9){ num =「0」+ num; return num; } if(長度> 12 &&長度<9); num = num; return num; }'code' –

+0

對於小於9位數或大於12的情況,您指定什麼也不做,所以我只返回0.否則,在您的代碼中,您不指定您的方式處理一個10位數的數字:你可以用函數reformatDigits(number){var num = number.toString(); var length = num.length; if(length == 11){num = num.substring(1,11);返回num; } if(length == 9){num =「0」+ num;返回num; } return num; } –