it-swarm.com.ru

Google Script, чтобы увидеть, содержит ли текст значение

У меня есть форма Google, которая при отправке пользователем запускает мою функцию, которая создает сводку того, что они отправили в виде Google Doc. Я знаю, что он может автоматически отправлять электронную почту, но мне нужно отформатировать ее так, чтобы мой пользователь мог отредактировать ее позже. 

В форме есть несколько флажков - но getResponse () заполняется только отмеченными пунктами, и мне нужно, чтобы он показал все возможные варианты. Тогда я укажу как-нибудь, что было проверено. 

Я не могу найти способ узнать, содержит ли текст значение . Как и в Java со строкой, я мог бы сделать .contains("9th") или .indexOf("9th") >=0, и тогда я бы знал, что строка содержит 9-й. Как я могу сделать это с помощью скриптов Google? Просматривал всю документацию, и я чувствую, что это должно быть самой простой вещью. 

var grade = itemResponse.getResponse();

Нужно посмотреть, если оценка содержит 9-й. 

Спасибо!

21
Sharon

Google Apps Script - это JavaScript, вы можете использовать все строковые методы ...

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

Вы можете найти документ на многих сайтах, этот например.

37
Serge insas

Мне пришлось добавить .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
        }
    }
};
0
GraehamF

Я использовал метод 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
Oscar