2016-07-28 25 views
0

ファイル内の指定された文字列(正確な文字列)を検索し、node.jsのそのファイルにリストされている場合はプロンプトを表示する関数を記述しようとしています。私は以下のスクリプトを試しましたが、検索文字列がファイル内の部分文字列としてリストされていても、文字列をリストしています。 私は言葉次のものが含まれますmessage.txtがあります。ファイル内の文字列を検索するには私のスクリプトは検索している文字列がファイルにリストされているかどうかを確認するにはどうすればよいですか?

ので
var fs = require('fs'); 
fs.readFile('message.txt', function (err, data) { 
    var searchstr = "bat"; 
     if (err) throw err; 
     if(data.indexOf(searchstr) < 0){ 
       console.log("String not found"); 
     } 
     else{ 
      console.log("String found!"); 
     } 
}); 

ある

bat 
bait 
can 
cat 

、ここで私はどの明らかだろうsearchstrを使用してbatを探していますが"String found"と出力されます。問題は、もし私がを検索文字列として与えると、 "at"は部分文字列でbatcatというファイルであるため、 "String found"と出力されます。 しかし、atを検索すると、 "String not found"という出力が出ます。

答えて

0

あなたはここに正規表現を使用することができます。

/\bat\b/ 

は、任意のワード境界に囲まれたatと一致します。

正確な条件に応じて、正規表現を変更する必要があります。たとえば、空白で囲まれたatを、代わりに/\sat\s/でテストするとよいでしょう。

関連する問題