2017-03-03 22 views
0

我有一個搜索功能,所以我從客戶端Str輸入,如果匹配文件中的內容發送作爲迴應。讓我們假設我現在有文件Lorem現在,如果我從客戶端搜索lorem,它會發送空數組,因爲區分大小寫。我如何使搜索不區分大小寫?如何使用nodejs使搜索不區分大小寫?

searchService.js

var searchStr; 
function readFile(str, logFiles, callback) { 
     searchStr = str; 
     // loop through each file 
     async.eachSeries(logFiles, function (logfile, done) { 
      // read file 
      fs.readFile('logs/dit/' + logfile.filename, 'utf8', function (err, data) { 
       if (err) { 
        return done(err); 
       } 
       var lines = data.split('\n'); // get the lines 
       lines.forEach(function(line) { // for each line in lines 
        if (line.indexOf(searchStr) != -1) { // if the line contain the searchSt 
         results.push({ 
         filename:logfile.filename, 
         value:line 
         }); 
        } 
       }); 
       // when you are done reading the file 
       done(); 
      }); 
+0

的可能的複製[轉換JavaScript字符串是所有小寫?](http://stackoverflow.com/questions/154862/convert-javascript-string-to-be-all-lower-case ) –

回答

4

您可以使用toLowerCase()

if (line.toLowerCase().indexOf(searchStr.toLowerCase()) != -1) { ... 
+0

如果我們在文件內容和客戶端發送lowerCase字符串大寫? – hussain

+0

你會發現我所說的'toLowerCase()'的'line'字符串以及 –

+0

得到它非常感謝的是解決問題 – hussain

1

可以使用.match使用正則表達式(/模式/ I)。 /i使模式搜索不區分大小寫。

if ("LOREMMMMMM".match(/Lorem/i)) console.log("Match");