谷歌脚本,以查看文本是否包含值

时间:2013-12-11 18:58:24

标签: google-apps-script

我有一个谷歌表单,当用户提交它时将触发我的功能运行,这将创建他们作为Google Doc提交的内容的摘要。我知道它可以自动发送电子邮件,但我需要格式化,以便我的用户以后可以编辑它。

表单上有一些复选框 - 但getResponse()仅填充了选中的项目,我需要它来显示所有可能的选项。然后我会以某种方式表明检查了什么。

我找不到查看文本是否包含值的方法。 就像在Java中使用String一样,我可以执行.contains("9th").indexOf("9th") >=0,然后我会知道String包含第9个。我怎么能用谷歌脚本做到这一点?通过文档查看,我觉得它一定是最简单的事情。

var grade = itemResponse.getResponse();

需要查看成绩是否包含9。

谢谢!

4 个答案:

答案 0 :(得分:43)

Google Apps脚本是javascript,您可以使用所有字符串方法...

var grade = itemResponse.getResponse();
if(grade.indexOf("9th")>-1){do something }

您可以在许多网站上找到文档,例如this one

答案 1 :(得分:4)

更新2020:

借助V8 Runtime ,您现在可以使用现代ECMAScript语法。

您可以使用includes()

var grade = itemResponse.getResponse();
if(grade.includes("9th")){do something}

答案 2 :(得分:1)

我必须将.toString添加到values数组中的项目。没有它,只有整个单元格都与searchTerm匹配时,它才会匹配。

function foo() {
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var s = ss.getSheetByName('spreadsheet-name');
    var r = s.getRange('A:A');
    var v = r.getValues();
    var searchTerm = 'needle';
    for(var i=v.length-1;i>=0;i--) {
        if(v[0,i].toString().indexOf(searchTerm) > -1) {
            // do something
        }
    }
};

答案 3 :(得分:0)

我使用了Google Apps脚本方法indexOf(),结果错误。所以我编写了小函数Myindexof(),而不是indexOf:

function Myindexof(s,text)
{
  var lengths = s.length;
  var lengtht = text.length;
  for (var i = 0;i < lengths - lengtht + 1;i++)
  {
    if (s.substring(i,lengtht + i) == text)
      return i;
  }
  return -1;
}

var s = 'Hello!';
var text = 'llo';
if (Myindexof(s,text) > -1)
   Logger.log('yes');
else
   Logger.log('no');