web-dev-qa-db-fra.com

Script de feuille de calcul Google fonctionnant avec des chaînes

J'ai une question sur la façon de travailler avec le type "chaîne" dans Google Script?

J'ai une colonne avec des sites dans différents formats, par exemple http://testsite.com/, http://www.sitetest.net/, dot.anothersite.com, http://anysite.net/index.html et ainsi de suite.

Je souhaite donc formater automatiquement ces enregistrements dans un modèle: sitename.domain (par exemple http://testsite.com/ = testsite.com || http://www.sitetest.net/ = sitetest.net)

Je reçois ces informations par ce script:

var sheet = SpreadsheetApp.getActiveSheet();
  var sheetName = sheet.getName();
  var restrictSheet = "Summary";
  if (sheetName != restrictSheet){ // I don't need to modify first sheet from my spreadsheet
    var sheetRange = sheet.getActiveRange();
    var sData = sheet.getRange("A3:A"); // column with sites
    var TextArray = sData.getValues();
  }else Browser.msgBox("wrong sheet");
}

Et je ne sais pas comment travailler avec des chaînes dans le script Google. En C++, par exemple, je pouvais utiliser des fonctions de chaîne comme String.Find () ou String.Mid (). Mais je ne vois pas les mêmes fonctions dans Google Scripts

12
barnak

Eh bien ... j'ai trouvé la réponse à ma propre question: D

Google Script utilise la classe String de JavaScript. Les fonctions et méthodes de JS fonctionnent également dans Google Scripts.

http://www.w3schools.com/jsref/jsref_obj_string.asp

Peut-être que cela aidera quelqu'un.

35
barnak

Peut être un peu tard ..

mais il serait bon de savoir que de nombreuses méthodes courantes d'objet chaîne ne fonctionnent pas dans Google App Script. Par exemple . endsWith , . comprend etc.

vérifiez ce stackoverflow question .

voici quelques tests pour vérifier

function stringEndsWithTest(){
  var a = "[email protected]";
  SpreadsheetApp.getUi().alert('endsWith method on a string in google app script '+ a.endsWith('.com')); 
}

function stringIncludesTest(){
  var a = "[email protected]";
  SpreadsheetApp.getUi().alert('includes method on a string in google app script '+ a.includes('.com')); 
}

J'obtenais cette erreur au moment d'écrire cette réponse

TypeError: Impossible de trouver la fonction inclut dans l'objet abc @ exemple. (ligne 19, fichier "principal")

comme alternative aux méthodes ci-dessus, ce qui m'a aidé était la méthode 'indexOf'

function stringIndexOfTest(){
  var a = "[email protected]";
  SpreadsheetApp.getUi().alert('indexOf method on a string in google app script '+ a.indexOf('.com')); 
}

J'espère que cela pourrait aider quelqu'un.

7
sumit