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

241
Vistas
Agregue saltos de línea alrededor de varias palabras en mayúsculas en una cadena

Editado porque no fui lo suficientemente claro

Tengo un texto de un archivo .txt que quiero mostrar en una página HTML. Quiero tener un salto de línea antes y después de una línea en mayúsculas, pero no para palabras independientes. Por ejemplo, si más de 2 palabras están en mayúsculas, deberían estar en una línea separada, pero no si es solo una palabra.

 const text1 = "I want THIS ON A SEPERATE LINE but not THIS text here"; function convertText(text) { ...check for uppercase line.... document.write(modifiedText) } convertText(text1); /* Wanted result: I want THIS ON A SEPERATE LINE but not THIS text here */

¿Cómo puedo hacer esto?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Deberá dividir cada palabra, ponerlas en grupos de mayúsculas y minúsculas y luego iterar a través de esos grupos, verificando cada palabra para encontrar si hay varias palabras en mayúsculas en cada grupo. Algo como lo siguiente debería hacer el trabajo:

 function convertText(text) { const words = text.split(' '); // split the string into an array of word strings let currentLine = ''; // groups of words of the same case const wordGroups = []; let lastWordWasAllCaps = false; // group words by case for (const word of words) { if (word === word.toUpperCase()) { if(!lastWordWasAllCaps) { // word is in block capitals, but the last one wasn't wordGroups.push(currentLine); currentLine = word; } else { currentLine = currentLine.concat(' ', word); } lastWordWasAllCaps = true; } else { if (lastWordWasAllCaps) { // word is not in block capitals, but the last one was wordGroups.push(currentLine); currentLine = word; } else { currentLine = currentLine.concat(' ', word); } lastWordWasAllCaps = false; } } // push the last line wordGroups.push(currentLine); let finalString = ''; let breakNextLine = true; // now look through the groups of words and join any single full capital words to their siblings for (const wordGroup of wordGroups) { // if a group is all caps and has no spaces, join it without a line break if (wordGroup === wordGroup.toUpperCase() && !wordGroup.includes(' ')) { finalString = finalString.concat(' ', wordGroup); // tell the next set to join without a line break breakNextLine = false; } else { if (breakNextLine) { finalString = finalString.concat('\n', wordGroup); } else { finalString = finalString.concat(' ', wordGroup); } breakNextLine = true; } } return finalString.slice(2); // remove the added spaces at the start }
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