使用占位符数组替换文本:JavaScript 中的替换对
Replace text using an array of placeholder : replacement pairs in JavaScript
这是一个简单的问题(我是 JavaScript 的新手,对语法和使用数组等的了解有限),所以我相信更有知识的人能够提出最简单的解决方案相当容易!
我想用可变文本输入替换现有 Google 文档模板中的一些文本占位符,我最终计划通过 API(例如表单)从一个或多个外部源填充这些文本.
function replaceAllPlaceholders() {
var body = DocumentApp.getActiveDocument().getBody(); //defines the range within which to replace text
body.replaceText('placeholder1', 'replacement1');
body.replaceText('placeholder2', 'replacement2');
body.replaceText('placeholder3', 'replacement3');
// ...
body.replaceText('placeholder98', 'replacement98');
body.replaceText('placeholder99', 'replacement99'); }
与其像我上面所做的那样为每个替换重复 replaceText( 函数,不如如何将信息布局为 placeholder:replacement 对的数组,然后遍历每个?
// for example something like this (pseudo):
//
// var obj = {
// 'placeholder1': 'replacement1' // I would like to keep open the option to retrieve this array from an external source instead
// 'placeholder2': 'replacement2'
// 'placeholder3': 'replacement3' };
//
// body.replaceText(*all placeholders*,*all replacements*);
我想这将允许更灵活地编辑占位符集和/或替换,直接在 Google Apps 脚本中或将整个数组替换为从外部源检索的数组(以及作为减少所需的代码)。问题是我一直无法找出正确的方法来做到这一点。有什么建议吗?
或者,有没有更好的方法来实现我的目标?
我愿意接受所有建议!
试试这个
var placeholders = [
['placeholder1', 'replacement1'],
['placeholder2', 'replacement2'],
['placeholder3', 'replacement3']
];
placeholders.forEach(function(pair) {
body.replaceText(pair[0], pair[1]);
});
这是一个简单的问题(我是 JavaScript 的新手,对语法和使用数组等的了解有限),所以我相信更有知识的人能够提出最简单的解决方案相当容易!
我想用可变文本输入替换现有 Google 文档模板中的一些文本占位符,我最终计划通过 API(例如表单)从一个或多个外部源填充这些文本.
function replaceAllPlaceholders() {
var body = DocumentApp.getActiveDocument().getBody(); //defines the range within which to replace text
body.replaceText('placeholder1', 'replacement1');
body.replaceText('placeholder2', 'replacement2');
body.replaceText('placeholder3', 'replacement3');
// ...
body.replaceText('placeholder98', 'replacement98');
body.replaceText('placeholder99', 'replacement99'); }
与其像我上面所做的那样为每个替换重复 replaceText( 函数,不如如何将信息布局为 placeholder:replacement 对的数组,然后遍历每个?
// for example something like this (pseudo):
//
// var obj = {
// 'placeholder1': 'replacement1' // I would like to keep open the option to retrieve this array from an external source instead
// 'placeholder2': 'replacement2'
// 'placeholder3': 'replacement3' };
//
// body.replaceText(*all placeholders*,*all replacements*);
我想这将允许更灵活地编辑占位符集和/或替换,直接在 Google Apps 脚本中或将整个数组替换为从外部源检索的数组(以及作为减少所需的代码)。问题是我一直无法找出正确的方法来做到这一点。有什么建议吗?
或者,有没有更好的方法来实现我的目标? 我愿意接受所有建议!
试试这个
var placeholders = [
['placeholder1', 'replacement1'],
['placeholder2', 'replacement2'],
['placeholder3', 'replacement3']
];
placeholders.forEach(function(pair) {
body.replaceText(pair[0], pair[1]);
});