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

199
Vistas
nodejs: Detecting multiple occurrence of same string in file

In nodejs is it possible to detect multiple occurrences of the same string in a txt file?

My current code is as below

const fs = require('fs');
var file_path = 'file.txt';
fs.readFile(file_path, "UTF-8", (error, data) => {
    if (error) throw error;
    else {
        if (data.includes('Test Value')) {
            console.log(data.indexOf('Test Value'))
        }
        fs.close(file, (err) => {
            if (err)
                console.error('Failed to close file', err);
            else {
                console.log("\n> File Closed successfully");
            }
        });
    }
});

In file.txt, I have below contents

Value1
Value2
Test Value
Value3
Test Value
Value4

when I run the above code, I could only detect first occurrence of 'Test Value' whereas I need to detect all occurrences of 'Test Value' in file.txt, please help

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

0

indexOf has two parameters. You can use store the last position and continue the next search at the next position:

const fs = require('fs');
var file_path = 'file.txt';
fs.readFile(file_path, "UTF-8", (error, data) => {
    if (error) throw error;
    else {
        
        for (let pos = data.indexOf('Test Value'); pos > -1; pos = data.indexOf('Test Value', pos + 1)) {
            console.log(pos);
        }
        fs.close(file, (err) => {
            if (err)
                console.error('Failed to close file', err);
            else {
                console.log("\n> File Closed successfully");
            }
        });
    }
});

Example:

const data = `Value1
Value2
Test Value
Value3
Test Value
Value4`;

for (let pos = data.indexOf('Test Value'); pos > -1; pos = data.indexOf('Test Value', pos + 1)) {
    console.log(pos);
}

about 4 years ago · Juan Pablo Isaza Denunciar

0

You can use a regexp global search (multiple matches) with the RegExp .exec() method.

A global search using the String .match() method returns just the matches without the index. However the RegExp .exec() method returns the index.

let match;
let search = /Test Value/g; // <-- the 'g' flag is important!

// If you need to construct the regexp dynamically
// do = new RegExp('Test Value', 'g')

while (match = search.exec(data)) {
    console.log(match.index);
}
about 4 years ago · Juan Pablo Isaza Denunciar

0

Yes. Loop through the data array and check each data element.

const fs = require('fs');
var file_path = 'file.txt';
fs.readFile(file_path, "UTF-8", (error, data) => {
    if (error) throw error;
    else {
        data.split('\n').forEach(line => {
            if (line === 'Test Value') {
                console.log(data.indexOf(line))
            }
        })
        fs.close(file, (err) => {
            if (err)
                console.error('Failed to close file', err);
            else {
                console.log("\n> File Closed successfully");
            }
        });
    }
});
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