我正在使用与 Google 表格和表单相关的 Google 脚本编辑器。有一个表单可以记录用户的电子邮件地址并将其存储在工作表中。
我用过:
var username = sheet.getSheetValues(numRows, 2, 1, 1); //getting username
这会返回一个对象“testuser@domain.com”,然后我将其发送到名为“removeEmail”的函数
var newName = removeEmail(username);
...
function removeEmail(input)
{
var name =input;
var stringLength = name.length;
var sub = name.substring(0,stringLength-10);
Logger.log(sub);
//return sub;
}
当我创建这个函数时,我有一个定义的电子邮件用于测试,它位于removeEmails函数内。记录器显示它正在完美删除域名。然而,当我在一个更大的主函数中实现这个函数时,函数出错了。消息是:
类型错误:无法在对象 testuser@domain.com 中找到函数子字符串。 (第 24 行,文件“removeEmail”)
我相信这是因为我的函数removeEmails适用于字符串,因为它使用字符串库,但我从工作表中获取数据的方式不会将变量存储为字符串。我已经尝试过了
username.toString();
在我调用removeEmails之前,甚至在removeEmails内部,但无法消除此错误。
最佳答案
根据docs ,getSheetValues 返回一个二维数组,而不是字符串。尝试像这样获取用户名:
var values = sheet.getSheetValues(numRows, 2, 1, 1); //getting username
var username = values[0][0]; // first row, first column since we're requesting just 1 cell
关于javascript - 类型错误 : Separating username from email address in Google Scripts/JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37667752/