我有一个谷歌表单,当用户提交它时将触发我的功能运行,这将创建他们作为Google Doc提交的内容的摘要。我知道它可以自动发送电子邮件,但我需要格式化,以便我的用户以后可以编辑它。
表单上有一些复选框 - 但getResponse()仅填充了选中的项目,我需要它来显示所有可能的选项。然后我会以某种方式表明检查了什么。
我找不到查看文本是否包含值的方法。
就像在Java中使用String一样,我可以执行.contains("9th")
或.indexOf("9th") >=0
,然后我会知道String包含第9个。我怎么能用谷歌脚本做到这一点?通过文档查看,我觉得它一定是最简单的事情。
var grade = itemResponse.getResponse();
需要查看成绩是否包含9。
谢谢!
答案 0 :(得分:43)
Google Apps脚本是javascript,您可以使用所有字符串方法...
var grade = itemResponse.getResponse();
if(grade.indexOf("9th")>-1){do something }
您可以在许多网站上找到文档,例如this one。
答案 1 :(得分:4)
借助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');