我在这里浏览了与我的问题相关的其他问题,但这些问题在我的情况下不起作用,或者我使用的是错误的,需要更好的解释。
我正在看一个大文件,看第一个单词,看它是否与用户输入的内容匹配,然后,如果要匹配,我想在行的其余部分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);
}
});
}