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

136
Visualizações
¿Cómo iterar la matriz de resultados divididos de un valor de cadena de varias líneas para reformatear ciertas líneas/nuevas líneas?

Tengo una cadena de datos que tiene saltos de línea en el medio. Por ejemplo:

 "Product Name \n Product Color \n Product Quantity \n Product Location \n Product Size \n Product Power"

La cantidad de elementos en la cadena podría ser infinita.

Necesito reemplazar \n con >>>> \n pero solo cuando los números de línea son mayores que 3 y no la última línea. En la última línea necesito que diga (end)

Probé el mapa y puedo dividir y reemplazar, pero tengo problemas para iterar a través de la matriz para identificar las líneas que se van a modificar. Además de volver a unirlos una vez que todas las líneas se modifican o no.

La entrada es:

 "Retract-A-Banner\n**Template:\nFull Color\nImprint Information:\nCL: 488 Special Ops Wing\n353 SOW Integrated Resilience Optimization Network\n"

Rendimiento esperado:

 "Retract-A-Banner\n**Template:\nFull Color >>>> \nImprint Information: >>>> \nCL: 488 Special Ops Wing >>>> \n353 SOW Integrated Resilience Optimization Network(end)\n"
over 4 years ago · Santiago Trujillo
5 Respostas
Responde à pergunta

0

Divida por \n y vuelva a crear su cadena con las condiciones:

  1. si este es el ultimo entonces agrega (end)
  2. si la línea es mayor que 3, agregue >>>> \n
  3. de lo contrario, un simple \n estará bien

EDITAR:

agregue una verificación si la última cadena es \n y elimine ese valor de la matriz.

 const str = "Retract-A-Banner\n**Template:\nFull Color\nImprint Information:\nCL: 488 Special Ops Wing\n353 SOW Integrated Resilience Optimization Network\n"; const splitted = str.split('\n'); let output = ''; if (splitted[splitted.length - 1] === '') splitted.length--; for (let i = 0; i < splitted.length; i++) { if (i + 1 === splitted.length) { output += splitted[i] + ' (end)'; } else if (i >= 2) { output += splitted[i] + ' >>>> \n'; } else { output += splitted[i] + '\n'; } } console.log(output);

over 4 years ago · Santiago Trujillo Relatório

0

Parece que quieres algo como esto:

 var strings = `Retract-A-Banner\nTemplate:\nFull Color\nImprint Information:\nCL: 488 Special Ops Wing\n353 SOW Integrated Resilience Optimization Network\n`.split("\n"); strings.forEach((string,index) => { if (index > 2) { strings[index] = `>>>>\\n${string}` } else { index > 0 ? `\\n${string}` : strings[index]; } }) var finalString = strings.join("")+"(end)"; console.log(finalString);

Tenga en cuenta que estoy escapando de su \n en ese código con una barra invertida adicional. Sin embargo, no puedo decir si eso es lo que quieres.

over 4 years ago · Santiago Trujillo Relatório

0

Qué tal algo como esto:

 var data = "Retract-A-Banner\n**Template:\nFull Color\nImprint Information:\nCL: 488 Special Ops Wing\n353 SOW Integrated Resilience Optimization Network\n"; function convertToLines(entry) { return entry.split("\n").filter((val) => val); } function constructOutput(lines) { const numLines = lines.length; return lines.reduce((result, entry, index) => { var separator = index > 2 ? " >>>> \n" : "\n"; if (index == numLines - 1) { separator = "(end)\n"; } return result + entry + separator; }, ""); } console.log(constructOutput(convertToLines(data)));

convertToLines usa el filter para volcar las entradas vacías que obtiene de la nueva línea al final de la cadena. Y luego tenemos que agregar eso al separador (end) .

over 4 years ago · Santiago Trujillo Relatório

0

Para insertar >>>> puedes usar la expresión regular: (?<=(.+\n.+){2,})(?=\n.)

  • El (?<=(.+\n.+){2,}) crea una mirada positiva hacia atrás para tres líneas
  • El (?=\n.) crea una anticipación positiva para una nueva línea seguida de cualquier carácter

Y luego puede usar la expresión regular similar (?<=.)(?=\n*$) para agregar '(end)' a la última línea.

 const input = "Retract-A-Banner\n**Template:\nFull Color\nImprint Information:\nCL: 488 Special Ops Wing\n353 SOW Integrated Resilience Optimization Network\n"; const output = input .replace(/(?<=(.+\n.+){2,})(?=\n.)/g, ' >>>> ') .replace(/(?<=.)(?=\n*$)/, '(end)'); console.log(input); console.log(output);


Si está utilizando una barra invertida literal seguida de una 'n' en su cadena, tendría el formato \\\n en su literal de cadena JS.

En ese caso, puede usar la expresión regular (?<=(.+\\n.+){2,})(?=\\n.) para insertar >>>> y la expresión regular (?=\\n$) para el (end) .

 const input = "Retract-A-Banner\\n**Template:\\nFull Color\\nImprint Information:\\nCL: 488 Special Ops Wing\\n353 SOW Integrated Resilience Optimization Network\\n"; const output = input .replace(/(?<=(.+\\n.+){2,})(?=\\n.)/g, ' >>>> ') .replace(/(?=\\n$)/, '(end)'); console.log(input); console.log(output);

over 4 years ago · Santiago Trujillo Relatório

0

  • Convertir cadena en una matriz de cadenas

     string.split(/\n/)
  • Luego use .flatMap() y un ternario encadenado como devolución de llamada. Cada condición se basa en el índice

     idx < 3 ? [str+' \n'] : idx === arr.length -1 ? [str+' (end)'] : [str+' >>>> \n']
  • Luego .join('') la matriz de nuevo en una cadena

 let test = `Retract-A-Banner\nTemplate:\nFull Color\nImprint Information:\nCL: 488 Special Ops Wing\n353 SOW Integrated Resilience Optimization Network\n" Expected Output:"Retract-A-Banner\nTemplate:\nFull Color \nImprint Information: \nCL: 488 Special Ops Wing \n353 SOW Integrated Resilience Optimization Network`; const formatLines = string => string.split(/\n/).flatMap((str, idx, arr) => idx < 3 ? [str + ' \n '] : idx === arr.length - 1 ? [str + ' (end) '] : [str + ' >>>> \n ']).join(''); console.log(formatLines(test));

over 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