-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; } –