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

Google Script to see if text contains a value

本文关键字:是否 包含值 文本 脚本 谷歌      更新时间:2024-06-22

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

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

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

var grade = itemResponse.getResponse();

需要看看年级是否包含9年级。

谷歌应用程序脚本是javascript,你可以使用所有的字符串方法。。。

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

你可以在很多网站上找到文档,比如这个。

更新2020:

由于V8 Runtime,您现在可以使用现代ECMAScript语法

您可以使用includes():

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

我不得不向值数组中的项添加一个.toString。如果没有它,只有当整个细胞体与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
        }
    }
};

我使用了Google Apps Script方法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');