Estoy tratando de reenviar un correo electrónico y agregar un párrafo después del sexto párrafo en el mensaje original que se ve así:
p1 p2 p3 p4 p5 p6 p7 p8 p9Tengo este script (solo una parte se muestra a continuación):
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});En lugar de esto, me gustaría tener algo así:
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});Esto no funciona, ya que la división devuelve solo un párrafo. ¿Hay alguna manera de incluir los primeros 6 párrafos y todos los últimos párrafos en las variables?
¡Muchas gracias de antemano!
Podrías hacer un reemplazo de expresiones regulares aquí:
var input = "p1\np2\np3\np4\np5\np6\np7\np8\np9"; var output = input.replace(/^((?:[\s\S]*?\n){6})/, "$1blabla\n"); console.log(output);Creo que su objetivo es el siguiente.
Desea insertar un valor de "blabla" en el texto del body .
De su secuencia de comandos de Instead of this, I would like to have something like that: , desea lograr el siguiente resultado.
p7 p8 p9 blabla p1 p2 p3 p4 p5 p6En su situación, ¿qué tal la siguiente modificación?
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 });Cuando se ejecuta este script, se obtiene el resultado anterior.
Si desea recuperar el siguiente resultado,
p1 p2 p3 p4 p5 p6 blabla p7 p8 p9 Modifique var res = [...p.slice(6, 9), "blabla", ...p.slice(0, 6)].join("\n"); como sigue.
var res = [...p.slice(0, 6), "blabla", ...p.slice(6, 9)].join("\n"); En su secuencia de comandos, se utiliza htmlBody . Si desea utilizar el valor del resultado como cuerpo HTML, modifique join("\n") a join("<br>") .
Como información adicional, si su valor de body es más de 9 párrafos y desea incluir todos los párrafos, ¿qué le parece modificar var res = [...p.slice(6, 9), "blabla", ...p.slice(0, 6)].join("\n"); y var res = [...p.slice(0, 6), "blabla", ...p.slice(6, 9)].join("\n"); ¿como sigue?
var res = [...p.slice(6), "blabla", ...p.slice(0, 6)].join("\n");var res = [...p.slice(0, 6), "blabla", ...p.slice(6)].join("\n");De su siguiente respuesta,
Entrada:
<br>p1<br>p2<br>p3<br>p4Salida en la meta:<br>p1<br>p2<br>blabla<br>p3<br>p4Salida que en realidad obtengo:p1 p2 blabla p3 p4Extraño los<br>en mi salida, pero los QUIERO.
En este caso, ¿qué tal el siguiente script de muestra?
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 , puede ver el valor de salida de muestra de <br>p1<br>p2<br>blabla<br>p3<br>p4 que esperas.