Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I check if a file contains a string or a variable in JavaScript?

Is it possible to open a text file with JavaScript (location like http://example.com/directory/file.txt) and check if the file contains a given string/variable?

In PHP this can be accomplished easily with something like:

$file = file_get_contents("filename.ext"); if (!strpos($file, "search string")) {     echo "String not found!"; } else {     echo "String found!"; } 

Is there a way to do this? I'm running the "function" in a .js file with Node.js, appfog.

like image 856
Mdlc Avatar asked Jul 03 '13 13:07

Mdlc


People also ask

How do you check if a variable is string or not?

The is_string() function checks whether a variable is of type string or not. This function returns true (1) if the variable is of type string, otherwise it returns false/nothing.

Is string a variable in JavaScript?

JavaScript variables can hold numbers like 100 and text values like "John Doe". In programming, text values are called text strings. JavaScript can handle many types of data, but for now, just think of numbers and strings. Strings are written inside double or single quotes.

How do you check a character is present in a string in JavaScript?

In JavaScript, the includes() method determines whether a string contains the given characters within it or not. This method returns true if the string contains the characters, otherwise, it returns false.


2 Answers

You can not open files client side with javascript.

You can do it with node.js though on the server side.

fs.readFile(FILE_LOCATION, function (err, data) {   if (err) throw err;   if(data.indexOf('search string') >= 0){    console.log(data) //Do Things   } }); 

Newer versions of node.js (>= 6.0.0) have the includes function, which searches for a match in a string.

fs.readFile(FILE_LOCATION, function (err, data) {   if (err) throw err;   if(data.includes('search string')){    console.log(data)   } }); 
like image 117
raam86 Avatar answered Sep 19 '22 20:09

raam86


You can also use a stream. They can handle larger files. For example:

var fs = require('fs'); var stream = fs.createReadStream(path); var found = false;  stream.on('data',function(d){   if(!found) found=!!(''+d).match(content) });  stream.on('error',function(err){     then(err, found); });  stream.on('close',function(err){     then(err, found); }); 

Either an 'error' or 'close' will occur. Then, the stream will close since the default value of autoClose is true.

like image 28
mh-cbon Avatar answered Sep 16 '22 20:09

mh-cbon