webentwicklung-frage-antwort-db.com.de

Google Script, um zu sehen, ob Text einen Wert enthält

Ich habe ein Google-Formular, das beim Senden des Nutzers die Ausführung meiner Funktion auslöst und eine Zusammenfassung dessen erstellt, was er als Google-Dokument eingereicht hat. Ich weiß, dass eine E-Mail automatisch gesendet werden kann, aber ich muss sie so formatiert haben, dass sie von meinem Benutzer später bearbeitet werden kann. 

Es gibt einige Kontrollkästchen im Formular - aber das getResponse () wird nur mit den markierten Elementen gefüllt und ich brauche es, um alle möglichen Optionen anzuzeigen. Dann werde ich irgendwie angeben, was geprüft wurde. 

Ich kann keinen Weg finden, um zu sehen, ob ein Text einen Wert enthält. __ Wie in Java mit einem String könnte ich entweder .contains("9th") oder .indexOf("9th") >=0 ausführen und dann würde ich wissen, dass der String 9 enthält. Wie mache ich das mit Google-Skripten? Durchgesehen durch die gesamte Dokumentation und ich habe das Gefühl, dass es das Einfachste überhaupt sein muss. 

var grade = itemResponse.getResponse();

Müssen Sie sehen, ob die Note 9 enthält. 

Vielen Dank!

21
Sharon

Google Apps Script ist Javascript. Sie können alle String-Methoden verwenden ...

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

Sie finden doc auf vielen Sites, beispielsweise this .

37
Serge insas

Ich musste dem Element im Werte-Array einen .toString hinzufügen. Ohne dies würde es nur übereinstimmen, wenn der gesamte Zellkörper mit dem searchTerm übereinstimmt.

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

Ich habe die Google Apps Script-Methode indexOf () verwendet und die Ergebnisse waren falsch. Also schrieb ich die kleine Funktion Myindexof () anstelle von 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