您好我想使用JavaScript
搜索文本中的某些字符(或单词)并删除开始此字符/单词的行。
删除以(He)开头的行..
Hello world,
He like cats and dogs
Bye bye
Hello world,
Bye bye
答案 0 :(得分:2)
您可以将字符串拆分为单独的行,丢弃所需的行,最后将这些行重新连接成一个字符串:
var string = "test\nHe test\ntest"; // "\n" represents a newline
var result = string.split("\n") // split into lines
.filter(function(line) { // only retain lines
return line.indexOf("He ") !== 0; // that don't start
}) // with "He " *
.join("\n"); // join the lines back into one string
*)“不启动”表示:字符在行中的索引0
处没有上诉。
答案 1 :(得分:2)
您可以使用indexOf方法找到“He”的pos,然后使用substring方法获取下一个换行符的位置以删除该行。
var someString = "Hello world,\n" +
"He like cats and dogs\n" +
"Bye bye";
var pos = someString.indexOf('He ');
var nextLineBreak = someString.indexOf('\n', pos);
var firstPart = someString.substring(0, pos);
var secondPart = someString.substring(nextLineBreak +1);
var finalString = firstPart + secondPart;
alert(finalString);
jsFiddle这里:http://jsfiddle.net/zw2Gh/
答案 2 :(得分:2)
这是基于单行正则表达式的替换:
someString.replace(/^He .*(\n|$)/mg, '');
它启用多行和全局标志(mg),允许我们在换行之前和之后使用^和$进行匹配。它还将删除所有出现的模式。如果您希望替换仅"He\n"
的行,则需要' .*'
可选,如下所示:
someString.replace(/^He( .*)?(\n|$)/mg, '');