Javascript 替换Google电子表格上字符串中的多个匹配项
因此,我准备了一个电子表格,用于记录一些python文件中的函数描述。TLDR由于文件留下的混乱,这些描述很难阅读 所以我的解决方案是:Javascript 替换Google电子表格上字符串中的多个匹配项,javascript,google-apps-script,google-sheets,google-sheets-api,Javascript,Google Apps Script,Google Sheets,Google Sheets Api,因此,我准备了一个电子表格,用于记录一些python文件中的函数描述。TLDR由于文件留下的混乱,这些描述很难阅读 所以我的解决方案是: function onEdit(e) { const desFix = ['"', '
']; let activeSheet = e.source.getActiveSheet(); let range = e.range; const desc = range.getValue(); const rd
function onEdit(e) {
const desFix = ['"', '
'];
let activeSheet = e.source.getActiveSheet();
let range = e.range;
const desc = range.getValue();
const rdesc = desc.toString();
for (let i=0; i<desFix.length; i++){
const rep = rdesc.replace(desFix[i]," ");
range.setValue(rep);
}
}
函数onEdit(e){
常量desFix=['”,'
;'];
让activeSheet=e.source.getActiveSheet();
设范围=e.range;
const desc=range.getValue();
常量rdesc=desc.toString();
我相信你的目标如下
- 您希望将
“
和
;
的值转换为Google电子表格中活动范围内的”
- 您希望使用OnEdit触发器运行脚本
修改点:
- 在您的脚本中,for循环中的
rdesc.replace(desFix[i],“”)
使用了相同的rdesc
。这样,只有第二个循环中的第一个和#xA;
被替换。我认为这就是您出现问题的原因
- 而且,我认为在for循环中使用
setValue
,过程成本会很高
- 在你的情况下,我认为TextFinder可能是合适的
因此,在这个答案中,我建议您使用TextFinder修改您的脚本
修改脚本:
- 例如,当您使用此选项时,请编辑一个单元格。通过此选项,脚本将由OneEdit触发器运行,并且单元格中的值中的
“
和
;
将替换为”
注:
- 如果要使用脚本编辑器运行脚本,还可以使用以下脚本。使用以下脚本时,请在脚本编辑器中运行
myFunction()
。这样,活动工作表中的所有单元格值都将被检查
function myFunction() {
const desFix = ['"', '
'];
const sheet = SpreadsheetApp.getActiveSheet();
desFix.forEach(f => sheet.createTextFinder(f).matchCase(true).replaceAllWith(" "));
}
参考资料:
-
- 我认为这些链接可能有用
@Acha欢迎。谢谢你让我知道。我很高兴你的问题得到了解决。如果你的问题得到解决,请按下“接受”按钮。与你有相同问题的其他人也可以将你的问题作为可以解决的问题。我认为你的问题和解决方案对他们很有用。如果你没有找到按钮,请随便告诉我。
function myFunction() {
const desFix = ['"', '
'];
const sheet = SpreadsheetApp.getActiveSheet();
desFix.forEach(f => sheet.createTextFinder(f).matchCase(true).replaceAllWith(" "));
}