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

135
Vistas
Dividir una cadena en dos, manteniendo las palabras intactas y devolviéndolas

Como dice el título, busco ver cómo puedo dividir una cadena en dos partes, manteniendo intactas las palabras completas y teniendo acceso a ambas partes con JavaScript. Estoy usando esta cadena en un archivo pug.

Por ejemplo, tengo una cadena muy larga

 let str = `hello i am a very long string that needs to be split into two different parts! thank you so much for helping.'

Quiero que los primeros 70 caracteres se usen como título y luego el resto para el cuerpo del elemento.

He usado esta expresión regular que encontré en una publicación anterior que me da los primeros 70+ caracteres, con palabras completas...

 str.replace(/^([\s\S]{70}[^\s]*)[\s\S]*/, "$1")

que hace lo que yo quiero que haga! Pero ahora necesito averiguar si hay una manera de obtener el resto de esa cadena.

 str1 = `hello i am a very long string that needs to be split into two different` str2 = `parts! thank you so much for helping.`

Nuevamente, usar esto en un archivo pug, así que si hay una respuesta simple, me encantaría. De lo contrario, supongo que podría escribir una función e importar el script a la vista pug.

about 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

¿Qué le gustaría hacer cuando la división ocurre en un carácter de espacio en blanco? Decir; el espacio justo después de 'diferente'. Significaría que la parte anterior al espacio tiene 69 caracteres, pero 70 si incluye el espacio. Suponiendo que desea capturar la siguiente palabra por si acaso, intente utilizar la búsqueda retrospectiva de ancho cero de JS:

 (?<=^.{70}\S*)\s+

Ver una demostración en línea


  • (?<= - Mirar hacia atrás positivo abierto;
    • ^.{70} - 70 Caracteres justo después del ancla de la línea de inicio;
    • \S* - 0+ caracteres que no son espacios en blanco;
  • \s+ - Captura 1+ caracteres de espacio en blanco para dividir.

 const str = 'hello i am a very long string that needs to be split into two different parts! thank you so much for helping'; const result = str.split(/(?<=^.{70}(?:\S)*)\s+/); console.log(result);

about 4 years ago · Santiago Trujillo Denunciar

0

Después de extraer la primera parte de la cadena usando su método, puede usar la longitud de str1 para determinar dónde comienza la segunda parte en str . Desde allí puede usar substring para extraerlo.

 let str = `hello i am a very long string that needs to be split into two different parts! thank you so much for helping.`; let str1 = str.replace(/^([\s\S]{70}[^\s]*)[\s\S]*/, "$1"); let str2 = str.substring(str1.length).trimStart();

Con trimStart puede eliminar cualquier espacio en blanco que aparezca al comienzo de str2 .

about 4 years ago · Santiago Trujillo Denunciar

0

Una solución alternativa a la anterior, pero usando solo regex sería la siguiente:

 let listStrings = str.split(/^([\s\S]{70}[^\s]*)[\s\S](.*)/)).filter(Boolean)

Agregué a su expresión regular la última parte (.*) para obtener el resto de la cadena como otro grupo. Luego, utilizando la función de split de cadenas de javascript, puede aplicar la expresión regular y obtener una lista de cadenas, siendo esos los grupos obtenidos por la expresión regular.

El .filter(Boolean) se usa para eliminar las cadenas vacías obtenidas en la respuesta:

 0:"" 1:"hello i am a very long string that needs to be split into two different" 2:"parts! thank you so much for helping." 3:""
about 4 years ago · Santiago Trujillo 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