Signification de formule.match(/\((.*)\;/).pop()
Bonjour,
J'ai trouvé, sur internet (forum Google+), un script écrit en JavaScript pour compter, dans une feuille de calcul, le nombre de cellules d'une couleur donnée dans une plage donnée. Je déteste faire du copier-coller sans comprendre (mon langage habituel étant Delphi). Voici cette fonction :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| function CompteCouleurs(plage,couleur) {
var activeRange = SpreadsheetApp.getActiveRange();
var activeSheet = activeRange.getSheet();
var formule = activeRange.getFormula();
var laplage = formule.match(/\((.*)\;/).pop();
var range = activeSheet.getRange(laplage);
var bg = range.getBackgrounds();
var values = range.getValues();
var lacouleur = formule.match(/\;(.*)\)/).pop();
var colorCell = activeSheet.getRange(lacouleur);
var color = colorCell.getBackground();
var count = 0;
for(var i=0;i<bg.length;i++)
for(var j=0;j<bg[0].length;j++)
if( bg[i][j] == color )
count=count+1;
return count;
}; |
J'ai 2 ou 3 questions sur cette fonction :
1) Pourquoi les variables "plage" et "couleur", transmis en paramètre, ne sont-ils jamais utilisé dans le code de la fonction ?
2) Que signifie précisément le passage formule.match(/\((.*)\;/).pop() ? Je sais que la méthode "match" s'applique sur une chaîne de caractères pour chercher une occurrence dans une expression régulière, mais là, je n'y comprends rien !
3) La variables tableau "values" est sans doute inutile ici, n'est-ce pas ?
Merci de m'éclairer.