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

134
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 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