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

249
Vistas
Divida la cadena usando múltiples separadores y mantenga los separadores en el resultado

Estoy tratando de dividir cadenas en una matriz si hay un punto y coma ";" o un punto "." o dos puntos ":".

El problema es que me gustaría que la división se produjera justo después del separador, no antes. Este código funciona de otra manera, pero el separador está al comienzo de cada elemento de la matriz. ¿Cómo puedo hacer que el separador se convierta en el último carácter del elemento de matriz?

 const arrayForSplitText = myString.split((/(?=[.;:])/gi));

Ejemplo:

myString = "Hola. Me gustaría esto: dividirme con los separadores al final de cada elemento".

resultado actual:

["Hola", ". Me gustaría esto", ": divídame con los separadores al final de cada elemento", "."]

resultado deseado:

["Hola"., "Me gustaría esto:", "sepárame con los separadores al final de cada elemento".]

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

0

En lugar de mirar hacia adelante en busca del separador, mira hacia atrás para encontrarlo. Dado que parece que desea que los espacios después del separador también desaparezcan, si existen, agregue también un espacio opcional.

 const myString = "Hello there. I would like this: split me with the separators at the end of each element." const arrayForSplitText = myString.split(/(?<=[.;:]) ?/gi); console.log(arrayForSplitText);

Si no puede usar lookbehind, .match para cualquier cosa menos los separadores, seguido de los separadores, también funciona.

 const myString = "Hello there. I would like this: split me with the separators at the end of each element." const arrayForSplitText = myString.match(/[^.;:]+[.;:]/g); console.log(arrayForSplitText);

Para recortar también los espacios iniciales con .match se requerirá un patrón un poco más largo.

 const myString = "Hello there. I would like this: split me with the separators at the end of each element." const arrayForSplitText = myString.match(/[^.;: ][^.;:]*[.;:]/g); console.log(arrayForSplitText);

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