您好我正在尝试删除不包含特定字符串的行 假设我有行
<p>hello are news watch</p>
<p>news watch</p>
<p>news watch hour</p>
<p>hey how</p>
<p>hey news</p>
我的特定字符串是新闻观看
如何删除包含word news watch
的行预期输出为:
hello are news watch
news watch
news watch hour
答案 0 :(得分:2)
使用String#split
拆分字符串,然后使用Array#filter
和String#indexOf
方法过滤掉包含文本的行,最后使用Array#join
方法将其联接回来。
var str = `hello are news watch
news watch
news watch hour
hey how
hey news`;
console.log(
str.split('\n')
.filter(function(v) {
return v.indexOf('news watch') > -1;
})
.join('\n')
)
如果它们是p标签并且您想要删除它们,那么请使用jQuery filter()
方法。
/*
$('body').html($('body p').filter(function() {
return $(this).text().indexOf('news watch') > -1;
}))
*/
$('body p').filter(function() {
return $(this).text().indexOf('news watch') === -1;
}).remove();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p>hello are news watch</p>
<p> news watch</p>
<p> news watch hour</p>
<p> hey how</p>
<p> hey news</p>
如果您需要获取这些文本,请使用jQuery map()
方法。
console.log(
$('body p').map(function() {
return $(this).text().indexOf('news watch') > -1 ? $(this).text() : null;
}).get().join('\n')
)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p>hello are news watch</p>
<p> news watch</p>
<p> news watch hour</p>
<p> hey how</p>
<p> hey news</p>
答案 1 :(得分:0)
你可以使用前面文章中提到的过滤器,或者你可以使用正则表达式。要在php中执行此操作,您可以将其拆分为一个行数组,然后使用preg_grep。大多数高级语言都支持正则表达式。
https://www.tutorialspoint.com/php/php_regular_expression.htm https://www.tutorialspoint.com/php/php_preg_grep.htm
答案 2 :(得分:0)
$("p").each(function(){
var str=$(this).text();
if (str.indexOf("news watch") <= 0)
{
$(this).hide(); // or use remove();
}
});