我正在尝试为Google文档电子表格创建一个自定义函数。我觉得这是一个非常简单的问题,而且我很快就摆脱了我的深度。 请帮帮我。一个正确的方向将非常感激。TypeError:无法调用未定义的方法“替换”
的googledocs脚本编辑器给出了这样的错误:
TypeError: Cannot call method "replace" of undefined. (line 50)
对于此代码:
function replaceGender(name, gender, comment) {
var genderedComment = String();
var name;
var gender;
var comment;
if(gender == "m")
{
genderedComment = ungenderedComment.replace("(name)", name).replace(/\(He\/She\)/g,"He").replace(/\(His\/\Her\)/g,"His").replace(/\(his\/\her\)/g,"his").replace(/\(him\/\her\)/g,"him").replace(/\(he\/\she\)/g,"he");
}
else
{
genderedComment = ungenderedComment.replace("(name)", name).replace(/\(He\/She\)/g,"She").replace(/\(His\/\Her\)/g,"Her").replace(/\(his\/\her\)/g,"her").replace(/\(him\/\her\)/g,"her").replace(/\(he\/\she\)/g,"she");
}
return genderedComment;
};
我认为它很容易,但我做错了什么。
我已经更改了代码,现在它的工作原理没有错误,但最后的.replace(/\(he\/\she\)/g,"she");
和.replace(/\(he\/\she\)/g,"he");
不能代替。不知道... 再次感谢您的所有帮助...正如我所说的即时通讯学习很多。
这里现在
function replaceGender(name, gender, comment) {
if(gender == "m")
{
comment = comment.replace(/\(name\)/g, name).replace(/\(He\/She\)/g,"He").replace(/\(His\/\Her\)/g,"His").replace(/\(his\/\her\)/g,"his").replace(/\(him\/\her\)/g,"him").replace(/\(he\/\she\)/g,"he");
}
else if(gender == "f")
{
comment = comment.replace(/\(name\)/g, name).replace(/\(He\/She\)/g,"She").replace(/\(His\/\Her\)/g,"Her").replace(/\(his\/\her\)/g,"her").replace(/\(him\/\her\)/g,"her").replace(/\(he\/\she\)/g,"she");
}
return comment;
};
变量'ungenderedComment'未定义。这意味着你不能像字符串一样通过调用字符串函数来处理它。您应该首先进行测试以确保其已定义。您应该检查以确保它不是未定义的,或者在代码中添加一个“else if”。实际上,正如PaulHoencke指出的,你可能完全使用了错误的变量! – jahroy 2013-02-14 02:43:08
除非有一些代码没有显示,'ungenderedComment'没有定义,就像错误说的那样。 – 2013-02-14 02:43:14
看起来也许你应该用'comment'替换'ungenderedComment',因为这是函数参数的名字。 – 2013-02-14 02:45:48