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

185
Visualizações
split string based on character limit and a period

I want to split a string based on 30 character limit and the catch here is it should get broken on a period(.) or a comma(,) or a space( ). i.e., the string length of 30 or a delimiter whichever comes first. I tried with the match using regex, this splits well, but not with a delimiter.

For example, Here is my sample code.

let x='Lorem ipsum dolor sit amet. Excepteur cuptat non proident, consectetur adipiscing elite detailo';

let splitString = x.match(/.{1,30}/g);

console.log(splitString);

Here the output I get is

[
  "Lorem ipsum dolor sit amet. Ex",
  "cepteur cuptat non proident, c",
  "onsectetur adipiscing elite de",
  "tailo"
]

But I want this to happen using a comma or period or a space as a delimiter. Expected output is

[
  "Lorem ipsum dolor sit amet.",
  "Excepteur cuptat non proident,",
  "consectetur adipiscing elite",
  "detailo"
]
about 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

You could match against this regex:

[^\s].{1,29}((?=\s|$)|(?<=[.,]))

which looks for a non-space character ([^\s]), and then up to 29 other characters (.{1,29}) which either:

  1. are followed by a space or end-of-line (?=\s|$); or
  2. end with a comma or full-stop (?<=[.,])

let x='Lorem ipsum dolor sit amet. Excepteur cuptat non proident, consectetur adipiscing elite detailo';

let splitString = x.match(/[^\s].{1,29}((?=\s|$)|(?<=[.,]))/g);

console.log(splitString);

about 4 years ago · Santiago Trujillo Relatório

0

let x='Lorem ipsum dolor sit amet. Excepteur cuptat non proident, consectetur adipiscing elite detailo';

let splitString = x.match(/.{1,30}[\.\s,]/g).map(item => item.trim());
const remaining = x.replace(splitString.join(' '), '');
splitString = [...splitString, remaining.trim()]

console.log(splitString);

Edit:

I removed the trailing spaces in the substrings. Don't know if it's necessary but there is the exact wanted result now.

about 4 years ago · Santiago Trujillo 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