如何替换对象中的文本

How to replace text in object

我是 Google 脚本的新手,我想创建一个脚本,从电子表格中获取图像名称并将该图像插入 google 文档中。我的问题是图像的名称。在电子表格中,它们以相同的文本存储在开头 'testui/'。我需要从头开始删除它。 已尝试使用 replaceText('testui/', ''),但收到消息 - 类型错误:无法在对象 testui/01-03-2019 11-02-14.Signature.054223.png[=11= 中找到函数 replaceText ]

    function createDocument() {
var headers = Sheets.Spreadsheets.Values.get('1M9biFRsbMtc6zDcAWgOYqJwNbivvVet-ZCD4joI', 'A1:I1');
var tactics = Sheets.Spreadsheets.Values.get('1M9biFRsbMtc6zDcAWgOYqJwNbivvVet-ZCD4joI', 'A2:I3');
var templateId = '1PxbTS67vrK8tqruNqjkqJMcjtGbqzQ';

for(var i = 0; i < tactics.values.length; i++){

var TimeStamp = tactics.values[i][0];
var AktoTipas = tactics.values[i][2];
var Kodas = tactics.values[i][6];
var Signature = tactics.values[i][8];

/*Here I got message TypeError: Cannot find function replaceText in object testui/01-03-2019 11-02-14.Signature.054223.png
Signature.replaceText('testui/', '')
*/

//Make a copy of the template file
var documentId = DriveApp.getFileById(templateId).makeCopy().getId();

//Rename the copied file
DriveApp.getFileById(documentId).setName(AktoTipas + '-' + TimeStamp + '-' + Kodas);

//Get the document body as a variable
var body = DocumentApp.openById(documentId).getBody();

//Insert the supplier name
body.replaceText('##aktas##', AktoTipas)
body.replaceText('##Laikas##', TimeStamp)
body.replaceText('##Signature##', Signature)

insertImageFromDrive(body, Signature);

}

}
function insertImageFromDrive(body, Signature){
var img = DriveApp.getFilesByName(Signature);
while (img.hasNext()) {
var image = img.next();
body.insertImage(3, image); 
}
}

如果你有相同的想法,我会很高兴!非常感谢。

你走在正确的轨道上。但是,replacetext() 是 google 文档正文对象的特定函数。

您从电子表格的各个单元格中获得的值可以按照定义 here 分类到各种 javascript 变量中。是的,我说的是 javascript,google 脚本基于 javascript 语言,对于大多数与操作变量相关的函数,您遵循 javascript 语法和函数。

因此,在这种情况下,Signature 是一个字符串变量,您将使用 javascript 的 string.replace() 函数来更改或操作您的字符串,如文档所述 here

在您的具体情况下,您将执行以下操作:

Signature = Signature.replace('testui/', '')