Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/453.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 谷歌应用程序脚本电话号码重新格式化_Javascript_Google Apps Script_Google Sheets_Number Formatting - Fatal编程技术网

Javascript 谷歌应用程序脚本电话号码重新格式化

Javascript 谷歌应用程序脚本电话号码重新格式化,javascript,google-apps-script,google-sheets,number-formatting,Javascript,Google Apps Script,Google Sheets,Number Formatting,我在google电子表格中有一个调用日志数据库,它是由IFTTT小程序生成的。 然后,通过GAS with url.fetch命令将该数据库发送到私有web API(如果您感兴趣,可以找到一个带有代码的数据库)。为了相关性。使用onChange触发器实现自动化,我将重新格式化数据,然后在每次IFTTT插入新行时将最后一行提取到API 它正在工作,但我的电话号码格式有问题。我从IFTTT获得的格式不一致,例如,约80%的电话号码的格式类似于“40727000000”(11位数字)或“7270000

我在google电子表格中有一个调用日志数据库,它是由IFTTT小程序生成的。 然后,通过GAS with url.fetch命令将该数据库发送到私有web API(如果您感兴趣,可以找到一个带有代码的数据库)。为了相关性。使用onChange触发器实现自动化,我将重新格式化数据,然后在每次IFTTT插入新行时将最后一行提取到API

它正在工作,但我的电话号码格式有问题。我从IFTTT获得的格式不一致,例如,约80%的电话号码的格式类似于“40727000000”(11位数字)或“727000000”(9位数字),其余的是国际电话号码或机器人电话号码。格式类似于“39328000000”(12位数字)或小于机器人9位数字。 现在,我发送给API的格式需要是一个10位数的数字,比如0727000000(但只有那些约80%的数字,国际数字和机器人数字需要保持不变)

所以本质上,我需要用GAS编写一个函数,包含3种场景:

  • 如果它有12位或少于9位,则不执行任何操作

  • 如果它有11个数字,删除第一个数字,在我的例子中总是“4”

  • 如果它有9个数字,在“7”前面加上一个“0”,它总是“7”

  • 谢谢大家!

    这里有一个解决方案:

    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
    
    }
    

    谢谢你,我会记下你的答案,但你犯了一些错误。下面是正在工作的'code'函数reformatDigits(number){var num=number.toString();var length=num.length;if(length==11){num=num.substring(1,11);return num;}if(length==9){num=“0”+num;return num;}if(length>12&&length<9);num=num;return num;}“code”对于小于9位或大于12位的情况,指定不执行任何操作,因此我只返回0。否则,在代码中,您不会指定如何处理10位数字:您可以用函数reformatDigits(number){var num=number.toString();var length=num.length;if(length==11){num=num.substring(1,11);return num;}if(length==9){num=“0”+num;return num;}return num;}我很抱歉,因为我问了这么愚蠢的问题。但是我的编码技能,不管是哪种,都是无效的,我在这个论坛上的不同用户的大量帮助下,在网上搜索了大量内容,才完成了这个脚本。所以再次为侮辱任何人而道歉!!!