Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

313
Visualizações
Acorte el texto después de 50 caracteres, pero solo después de la palabra actual

Necesito acortar el texto después de 50 caracteres, pero si el carácter 50 está en el medio de una palabra, corte solo después de la palabra y no antes.

texto de ejemplo: contrariamente a la creencia popular, Lorem Ipsum no es simplemente texto (59 caracteres)

resultado esperado: contrariamente a la creencia popular, Lorem Ipsum no es simplemente (54 caracteres)

Estaba intentando esto: text.substr(0,50).lastIndexOf(' ')); - no es bueno para mí porque corta el "simplemente" y quiero que simplemente esté en el texto más corto. ¡Gracias por la ayuda!

about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

Si la longitud de la frase es inferior al límite, devuelve la frase; de lo contrario, ajuste el índice de corte al límite y explore hasta que encuentre un límite de palabra y corte la frase.

 const clip = (phrase, limit) => { if (phrase.length <= limit) return phrase; let sliceIndex = limit; while (sliceIndex < phrase.length && /\b/.test(phrase[sliceIndex])) sliceIndex++; return phrase.slice(0, sliceIndex); }; const input = "Contrary to popular belief, Lorem Ipsum is not simply text"; const expected = "Contrary to popular belief, Lorem Ipsum is not simply"; const actual = clip(input, 50); console.log(actual === expected); // true

about 4 years ago · Juan Pablo Isaza Relatório

0

Estuvo cerca con la subcadena & indexOf. Si busca un espacio después de los primeros 50 caracteres, funcionará. Luego, hay un caso extremo en el que la cadena tiene más de 50 caracteres y no tiene espacio.

 const shortener = (str) => { const offset = str.substring(50).indexOf(' '); return offset !== -1 ? str.substring(0,50 + offset) + '...' : str.length > 50 ? str + '...' : str; }
about 4 years ago · Juan Pablo Isaza Relatório

0

La expresión regular puede ayudarte con eso.
La idea es encontrar al menos 50 símbolos que terminen con límite de palabra \b

 let text = 'Contrary to popular belief, Lorem Ipsum is not simply text'; let shortetedText = text.match(/.{50,}?(?=\b)/)[0]; console.log(shortetedText);

UPD:
Si desea crear una función que acorte su texto si tiene más de 50 símbolos, podemos crear una función que lo haga en su lugar.

 let short = text => text.length > 50 ? text.match(/.{50,}?(?=\b)/)[0]: text;

Entonces solo úsalo así:

 let longText = 'Contrary to popular belief, Lorem Ipsum is not simply text'; let shortText = 'Lorem ipsum'; console.log(short(longText)); //will shorten text console.log(short(shortText)); //will leave text as it is bcoz it's shorter than 50 symbols
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda