我在这里浏览了与我的问题相关的其他问题,但这些问题在我的情况下不起作用,或者我使用的是错误的,需要更好的解释。

我正在看一个大文件,看第一个单词,看它是否与用户输入的内容匹配,然后,如果要匹配,我想在行的其余部分console.log

File.txt

#one: This is the first line
#two: This is the second line
#three: This is the third line
etc


节点Js

// Take in user input

var msgSplit = userInput.split(" ");

if (msgSplit[0].startsWith("#") {

    var lineReader = require('readline').createInterface({
        input: require('fs').createReadStream('Custom_Phrases')
    });

    lineReader.on('line', function(line) {
        if(line.indexOf(msgSplit[0]) < 0) {
            console.log(line);
        }
    });
}


这行得通,但它返回我想要的那一行之后的行。例如,如果可能的话,我希望用户输入#one,这是第一行记录到控制台。

最佳答案

line.indexOf(msgSplit[0]) < 0表示找不到您的用户输入。因此,仅显示与用户输入不匹配的行。

尝试这个:

// Take in user input

var msgSplit = userInput.split(" ");

if (msgSplit[0].startsWith("#")
{
  var lineReader = require('readline').createInterface({
      input: require('fs').createReadStream('Custom_Phrases')
  });

  lineReader.on('line', function(line) {
    if(line.indexOf(msgSplit[0]) >= 0)
    {
      console.log(line);
    }
  });
}

10-06 07:25