我想找到在任何文本启动之前修剪空
标记的最简单方法。例如,我有以下文字。
<p> </p><p> </p>
<p> </p><p> </p>
<p> </p>
<p>This is an example<br></p><p> </p><p>continue </p>
我希望输出为<p>This is an example<br></p><p> </p><p>continue </p>
我希望删除所有空P标签。
标签之间可以有多个空格。
我可以选择使用CSS或VB或c#。
答案 0 :(得分:2)
发表评论,您也接受C#我建议使用简单的正则表达式来验证:
var source = @"<p> </p><p> </p>
<p> </p><p> </p>
<p> </p>
<p>This is an example<br></p><p> </p><p>continue </p>";
string output = Regex.Replace(source, @"<p>\s*</p>", "").Trim();
使用Telerik转换的VB.net中的相同代码应如下所示:
Dim source = "<p> </p><p> </p>" & vbCr & vbLf & "<p> </p><p> </p>" & vbCr & vbLf & "<p> </p>" & vbCr & vbLf & "<p>This is an example<br></p><p> </p><p>continue </p>"
Dim output As String = Regex.Replace(source, "<p>\s*</p>", "").Trim()
说明:
<p> matches the characters <p> literally
\s* match any white space character [\r\n\t\f ] 0 to unlimited times
</p> matches the characters </p> literally
答案 1 :(得分:1)
您已在css中标记了自己的问题。所以,我使用:empty pseudo class selector:
在css中为您提供答案p:empty{
display: none;
}
根据您更新的问题:
您可以使用not,如下所示:
p:empty :not(p + p:empty){
display: none;
}
答案 2 :(得分:0)
我认为这个css技巧会起作用:
<svg width="600px" height="400px" viewBox="0 0 600 400">
<circle cx="200" cy="200" r="180" style="stroke: red; fill: none;"/>
<line x1="200" y1="220" x2="200" y2="180" style="stroke: black"/>
<line x1="180" y1="200" x2="220" y2="200" style="stroke: black"/>
<path d="M200,200 L20.178,208 A180,180 0 0,1 377.482,170 z" style="stroke: blue; fill:none"/>
<path d="M200,200 L20.178,208 A180,180 0 1,0 377.482,170 z" style="stroke: green; fill:none"/>
</svg>
答案 3 :(得分:0)
您可以查看以下网站以获得解决方案,我认为它会对您有所帮助: http://www.dotnetperls.com/remove-html-tags
答案 4 :(得分:0)
使用 jQuery,而不是c#,vb.net或CSS
在文档就绪事件
上写下这个var p = $("p");
for (var i = 0; i < p.length; i++)
{
if($.trim(p[i].innerHTML) == "")
{
p[i].remove();
}
}
答案 5 :(得分:-1)
请试试这个
function removeEmptyPTags() {
var items = $('body').find('p');
$.each(items, function (i, v) {
if ($(items[i]).html().trim() === "") {
$(items[i]).remove();
}
});
}