拆分前检索所有内容
Retrieve all content before split
我正在尝试转发一封电子邮件,并在原邮件的第 6 段之后添加一段,如下所示:
p1
p2
p3
p4
p5
p6
p7
p8
p9
我有这个脚本(下面只展示了一部分):
var body = messages[j].getPlainBody();
var firstpart = body.split("\n")[7,8,9]);
var secondpart = body.split("\n")[1,2,3,4,5,6]);
GmailApp.sendEmail(recipient,subject, '', {htmlBody: "blabla" + body});
而不是这个,我想要这样的东西:
var body = messages[j].getPlainBody();
var firstpart = body.split("\n")[7,8,9]);
var secondpart = body.split("\n")[1,2,3,4,5,6]);
GmailApp.sendEmail(recipient,subject, '', {htmlBody: firstpart + "blabla" + secondpart});
这不起作用,因为拆分 returns 只有一个段落。有没有办法将所有前 6 段和所有最后一段都包含在变量中?
非常感谢!
您可以在此处进行正则表达式替换:
var input = "p1\np2\np3\np4\np5\np6\np7\np8\np9";
var output = input.replace(/^((?:[\s\S]*?\n){6})/, "blabla\n");
console.log(output);
我相信你的目标如下。
您想在 body
的文本中插入值 "blabla"
。
根据您 Instead of this, I would like to have something like that:
的脚本,您想实现以下结果。
p7
p8
p9
blabla
p1
p2
p3
p4
p5
p6
你的情况,下面的修改怎么样?
修改后的脚本:
var body = messages[j].getPlainBody();
var p = body.split("\n");
var res = [...p.slice(6, 9), "blabla", ...p.slice(0, 6)].join("\n");
GmailApp.sendEmail(recipient, subject, '', { htmlBody: res });
当这个脚本为运行时,得到上面的结果
如果要检索以下结果,
p1
p2
p3
p4
p5
p6
blabla
p7
p8
p9
请修改var res = [...p.slice(6, 9), "blabla", ...p.slice(0, 6)].join("\n");
如下。
var res = [...p.slice(0, 6), "blabla", ...p.slice(6, 9)].join("\n");
注:
在您的脚本中,使用了 htmlBody
。如果要将结果值作为HTML body,请将join("\n")
修改为join("<br>")
.
作为附加信息,如果您的 body
值超过 9 个段落并且您想包括所有段落,请修改 var res = [...p.slice(6, 9), "blabla", ...p.slice(0, 6)].join("\n");
和 var res = [...p.slice(0, 6), "blabla", ...p.slice(6, 9)].join("\n");
如下?
var res = [...p.slice(6), "blabla", ...p.slice(0, 6)].join("\n");
var res = [...p.slice(0, 6), "blabla", ...p.slice(6)].join("\n");
已添加:
根据您的以下回复,
Input: <br>p1<br>p2<br>p3<br>p4
Output at goal: <br>p1<br>p2<br>blabla<br>p3<br>p4
Output I actually get: p1 p2 blabla p3 p4
I miss the <br>
in my output, but I WANT them.
在这种情况下,下面的示例脚本怎么样?
示例脚本:
var body = "<br>p1<br>p2<br>p3<br>p4";
var p = body.split("<br>");
p.splice(3, 0, "blabla");
var res = p.join("<br>");
console.log(res) // <br>p1<br>p2<br>blabla<br>p3<br>p4
- 当此脚本是运行您的
<br>p1<br>p2<br>p3<br>p4
样本输入时,您可以看到您期望的<br>p1<br>p2<br>blabla<br>p3<br>p4
样本输出值。
我正在尝试转发一封电子邮件,并在原邮件的第 6 段之后添加一段,如下所示:
p1
p2
p3
p4
p5
p6
p7
p8
p9
我有这个脚本(下面只展示了一部分):
var body = messages[j].getPlainBody();
var firstpart = body.split("\n")[7,8,9]);
var secondpart = body.split("\n")[1,2,3,4,5,6]);
GmailApp.sendEmail(recipient,subject, '', {htmlBody: "blabla" + body});
而不是这个,我想要这样的东西:
var body = messages[j].getPlainBody();
var firstpart = body.split("\n")[7,8,9]);
var secondpart = body.split("\n")[1,2,3,4,5,6]);
GmailApp.sendEmail(recipient,subject, '', {htmlBody: firstpart + "blabla" + secondpart});
这不起作用,因为拆分 returns 只有一个段落。有没有办法将所有前 6 段和所有最后一段都包含在变量中?
非常感谢!
您可以在此处进行正则表达式替换:
var input = "p1\np2\np3\np4\np5\np6\np7\np8\np9";
var output = input.replace(/^((?:[\s\S]*?\n){6})/, "blabla\n");
console.log(output);
我相信你的目标如下。
您想在
body
的文本中插入值"blabla"
。根据您
Instead of this, I would like to have something like that:
的脚本,您想实现以下结果。p7 p8 p9 blabla p1 p2 p3 p4 p5 p6
你的情况,下面的修改怎么样?
修改后的脚本:
var body = messages[j].getPlainBody();
var p = body.split("\n");
var res = [...p.slice(6, 9), "blabla", ...p.slice(0, 6)].join("\n");
GmailApp.sendEmail(recipient, subject, '', { htmlBody: res });
当这个脚本为运行时,得到上面的结果
如果要检索以下结果,
p1 p2 p3 p4 p5 p6 blabla p7 p8 p9
请修改
var res = [...p.slice(6, 9), "blabla", ...p.slice(0, 6)].join("\n");
如下。var res = [...p.slice(0, 6), "blabla", ...p.slice(6, 9)].join("\n");
注:
在您的脚本中,使用了
htmlBody
。如果要将结果值作为HTML body,请将join("\n")
修改为join("<br>")
.作为附加信息,如果您的
body
值超过 9 个段落并且您想包括所有段落,请修改var res = [...p.slice(6, 9), "blabla", ...p.slice(0, 6)].join("\n");
和var res = [...p.slice(0, 6), "blabla", ...p.slice(6, 9)].join("\n");
如下?var res = [...p.slice(6), "blabla", ...p.slice(0, 6)].join("\n");
var res = [...p.slice(0, 6), "blabla", ...p.slice(6)].join("\n");
已添加:
根据您的以下回复,
Input:
<br>p1<br>p2<br>p3<br>p4
Output at goal:<br>p1<br>p2<br>blabla<br>p3<br>p4
Output I actually get:p1 p2 blabla p3 p4
I miss the<br>
in my output, but I WANT them.
在这种情况下,下面的示例脚本怎么样?
示例脚本:
var body = "<br>p1<br>p2<br>p3<br>p4";
var p = body.split("<br>");
p.splice(3, 0, "blabla");
var res = p.join("<br>");
console.log(res) // <br>p1<br>p2<br>blabla<br>p3<br>p4
- 当此脚本是运行您的
<br>p1<br>p2<br>p3<br>p4
样本输入时,您可以看到您期望的<br>p1<br>p2<br>blabla<br>p3<br>p4
样本输出值。