Google 脚本查看文本是否包含值

问题描述 投票:0回答:5

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

表单上有一些复选框 - 但 getResponse() 仅填充选中的项目,我需要它显示所有可能的选择。然后我会以某种方式指出检查过的内容。

我找不到查看文本是否包含值的方法。 就像在 Java 中使用字符串一样,我可以执行

.contains("9th")
.indexOf("9th") >=0
,然后我就会知道该字符串包含第 9 个。 我怎样才能用谷歌脚本做到这一点? 浏览了所有文档,我觉得这一定是有史以来最简单的事情。

var grade = itemResponse.getResponse();

需要查看年级是否包含第 9 名。

javascript google-apps-script
5个回答
73
投票

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

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

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


21
投票

2020 年更新:

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

您可以使用includes():

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

7
投票

我必须向值数组中的项目添加

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

2
投票

我使用了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');

0
投票

我正在寻找一种简单的方法来在 Google 应用脚本中执行此操作。如果人们能够回复,那将是我的一天。

© www.soinside.com 2019 - 2024. All rights reserved.