我收到错误“id.replace 不是函数”
以下是我认为相关代码的内容。我遗漏了一些明显的东西,但我的大脑目前是糊状的。
getSyncDbFile: function (config, id) {
if (id === null)
{
com.synckolab.tools.logMessage("Error: entry has no id (" +config.name + ": " + config.type + ")", com.synckolab.global.LOG_ERROR);
return null;
}
com.synckolab.tools.logMessage("syncDbFile: (" +com.synckolab.tools.text.fixNameToMiniCharset(config.serverKey) + "/" + config.type + "_" + config.name + "/" + id + ")", com.synckolab.global.LOG_ERROR);
id = id.replace(/[ :.;$\\\/]\#\@/g, "_");
var file = Components.classes["@mozilla.org/file/directory_service;1"].getService(Components.interfaces.nsIProperties).get("ProfD", Components.interfaces.nsIFile);
try {
file.append("synckolab");
if (!file.exists()) {
file.create(1, parseInt("0775", 8));
}
file.append(com.synckolab.tools.text.fixNameToMiniCharset(config.serverKey));
if (!file.exists()) {
file.create(1, parseInt("0775", 8));
}
file.append(config.type + "_" + config.name);
if (!file.exists()) {
file.create(1, parseInt("0775", 8));
}
file.append(id);
}
catch (ex)
{
com.synckolab.tools.logMessage("Problem with getting syncDbFile: (" +com.synckolab.tools.text.fixNameToMiniCharset(config.serverKey) + "/" + config.name + ": " + config.type + ": " + id + ")\n" + ex, com.synckolab.global.LOG_ERROR);
return null;
}
return file;
}