Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

268
Vistas
La secuencia de comandos no resalta todas las palabras repetidas, ¿cómo puedo solucionarlo?

Tengo el siguiente script ejecutándose donde necesita buscar en todo el documento de Google las palabras específicas que he elegido y resaltarlas dentro del documento. Actualmente está haciendo esto, sin embargo, para algunas palabras repetidas no las resalta. ¿Cómo podría modificar el guión para asegurarme de que todas las palabras estén resaltadas?

 function highlightSentences() { const doc = DocumentApp.getActiveDocument(); const body = doc.getBody(); sentences.forEach(sentence => { const rangeElement = body.findText(sentence); if (rangeElement) { const startOffset = rangeElement.getStartOffset(); const endOffset = rangeElement.getEndOffsetInclusive(); const element = rangeElement.getElement(); if (element.editAsText) { const textElement = element.editAsText(); textElement.setBackgroundColor(startOffset, endOffset, "#fcfc03"); } } }); }```
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Usando este script de muestra y la expresión regular, ¿qué tal la siguiente modificación?

Guión modificado:

 function highlightSentences() { var sentences = ["value1", "value2",,,]; // Please set your search texts. const doc = DocumentApp.getActiveDocument(); const body = doc.getBody(); const searchValue = sentences.join("|"); var rangeElement = body.findText(searchValue); while (rangeElement) { const startOffset = rangeElement.getStartOffset(); const endOffset = rangeElement.getEndOffsetInclusive(); const element = rangeElement.getElement(); const textElement = element.editAsText(); textElement.setBackgroundColor(startOffset, endOffset, "#fcfc03"); rangeElement = body.findText(searchValue, rangeElement); } }

Referencia:

  • findText(patrónbúsqueda, desde)
about 4 years ago · Juan Pablo Isaza Denunciar

0

Desafortunadamente, el método findText solo devuelve un elemento, como se indica en la documentación que se puede leer aquí . Sin embargo, todas las oraciones aún se pueden encontrar fácilmente usando un ciclo while, donde seguimos buscando la oración deseada hasta que la función findText no encuentre más. Podrías adaptar tu código para algo como:

 function highlightSentences() { const doc = DocumentApp.getActiveDocument(); const body = doc.getBody(); var sentences = ["search", "these"]; //An array of things to highlight for (var sentence of sentences){ var rangeElement = body.findText(sentence); while (rangeElement != null) { var foundText = rangeElement.getElement().asText(); var startOffset = rangeElement.getStartOffset(); var endOffset = rangeElement.getEndOffsetInclusive(); foundText.setBackgroundColor(startOffset, endOffset, "#fcfc03"); rangeElement = body.findText(sentence, rangeElement); } } }
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda