2017-03-03 124 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");