您可以将逻辑包装在一个函数中,该函数遍历给定文本的行并返回一个列表,其中行的索引与搜索模式(或确切的搜索词)匹配。
然后,您可以适当地使用这些索引,例如从原始文本中删除这些行。
function findMatches(text, pattern) {
var matchingLines = [];
var allLines = text.split("\n");
for (var i = 0; i < allLines.length; i++) {
if (allLines[i].match(pattern)) {
matchingLines.push(i);
}
}
return matchingLines;
}
另请参阅这个简短的演示。
需要记住的几点: * 在上面的例子中,“pattern”被 JS 视为一个正则表达式模式,例如“tes”。将匹配“test”、“tess”、“tes6”等。如果您想要文字匹配,请替换allLines[i].match(pattern)
为allLines[i].indexOf(pattern) != -1
. * 假设行以“\n”结尾。如果您的规格不同,请进行相应修改。* 在上面的简短演示中,行查找部分和行删除部分是分开的,导致代码更复杂(为了灵活性)。如果您只想删除匹配的行,您可以一次性完成,如下所示:
function removeMatches(text, pattern) {
var outputLines = [];
var inputLines = text.split("\n");
for (var i = 0; i < inputLines.length; i++) {
if (!inputLines[i].match(pattern)) {
outputLines.push(inputLines[i]);
}
}
return outputLines.join("\n");
}