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

334
Vistas
Eliminar cadena entre dos caracteres sin expresiones regulares Javascript

Estoy tratando de eliminar una oración de un archivo de texto que estoy cargando a través de un archivo de entrada. Necesito eliminar todas las oraciones que están entre '/ ' y ' /', así que los comentarios se alinean básicamente. También todos los comentarios de una sola línea como '//' pero ya me encargué de eso. Para eso, no tengo permitido usar ninguna expresión regular o función de reemplazo. ¿Hay alguien que pueda ayudarme en eso? Gracias

 class Inpute extends Component{ constructor(props){ super(props); this.state = { fileName: '', fileContent: '' }; } handleFile = e =>{ const file = e.target.files[0]; const reader = new FileReader(); reader.readAsText(file); reader.onload = () => { this.setState({fileName: file.name, fileContent: reader.result}); if(reader.result.includes('//')){ var newText = reader.result newText = newText .split('\n') .filter(x => !x.includes('\/\/')) .join('\n') this.setState({fileName: file.name, fileContent: newText}) } } reader.onerror = () =>{ console.log('File Error : ', reader.error) } }
about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Dividir cadena por / . Las partes que necesita eliminar están todas en índices impares, así que fíltrelas y vuelva a unir esta matriz en una cadena.

 const string = 'asdasada a/kkkkkkkk/a sdad asda s/xxxxx/s dasd'; const arr = string.split('/').filter((_, index) => index%2 === 0); console.log(arr.join(''));

ACTUALIZAR

He cambiado mi ejemplo para filtrar solo comentarios.

 const line = 'asdasada a/*kkkkkkkk*/a sdad asda s/*xxxxxs dasd x asda sd\n' + 'asdas */das a// asdasda\n' + 'x/*bbbbb*/c ad'; let prevPart = null; let haveDoubleSlashes = false; const cleaned = line.split('/').map(part => { // single line comments if (haveDoubleSlashes || part === '') { haveDoubleSlashes = true; if (part.includes('\n')) { part = '\n' + part.split('\n')[1]; haveDoubleSlashes = false; } else { part = null; } return part; } /* multiline comments */ if (part.startsWith('*') && part.endsWith('*')) { prevPart = null; return null; } if (prevPart !== null) { part = '/' + part; } prevPart = part; return part; }).filter(part => part !== null).join(''); console.log(cleaned);

about 4 years ago · Juan Pablo Isaza Denunciar

0

Si todo lo que le importa es si la línea contiene dos caracteres solidus ( / ), simplemente filtre eso:

 const sample = `blah blah // blah blah\nblah blah /blah blah/ blah\nblah blah blah`; const lines = sample.split('\n'); const good = lines.filter(x => // [...x] makes the line an array of characters // reduce runs for each character, aggregating the result. // agg is the aggregation, cur is the current character // Here it's just counting the number of /s and returning false if there are // fewer than two [...x].reduce((agg, cur) => agg = cur === '/' ? agg + 1 : agg, 0) < 2 ); console.log(good.join('\n'));

about 4 years ago · Juan Pablo Isaza Denunciar

0

 function stripMultilineComments(str) { let posOpen; let posClose; while ((posOpen = str.indexOf('/*')) !== -1) { posClose = Math.max( 0, str.indexOf('*/', (posOpen + 2)) ) || (str.length - 2); str = [ str.substring(0, posOpen), str.substring(posClose + 2), ].join(''); } return str; } function stripSingleLineComment(str) { let idx; if ( (str.trim() !== '') && ((idx = str.indexOf('//')) !== -1) ) { str = str.substring(0, idx); } return str; } function stripComments(value) { return stripMultilineComments( String(value) ) .split('\n') .map(stripSingleLineComment) .join('\n'); } const sampleData = ` Lorem ipsum dolor sit amet/*, consectetur adipiscing elit, sed do eiusmod tempor incididunt*/ ut labore et dolore magna aliqua. // Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris/*nisi ut aliquip //ex ea commodo consequat*/. Duis aute irure dolor in reprehenderit// in voluptate velit esse cillum dolore eu fugiat nulla pariatur.// Excepteur sint occaecat /*cupidatat non //proident, */sunt in culpa qui officia deserunt mollit anim id est laborum. `; console.log( stripComments(sampleData) ); console.log( stripComments(sampleData) === ` Lorem ipsum dolor sit amet ut labore et dolore magna aliqua. quis nostrud exercitation ullamco laboris. Duis aute irure dolor in reprehenderit eu fugiat nulla pariatur. sunt in culpa qui officia deserunt mollit anim id est laborum. `);
 .as-console-wrapper { min-height: 100%!important; top: 0; }

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