如何在javascript和c中使用regex删除空行
how to remove empty line use regex in javascript and c#
用户通过文本编辑器输入内容,最后提交到数据库。在存储到数据库中之前,我希望删除内容开头和结尾的空行(中间不能删除)。
我想使用JavaScript和C#
样本内容为:
<div>
<p><span><br></span></p>
<span>a<br/>bc</span>
<p>te<br>st</p>
<p>'n<span>'n</span></p>
<p><span><br/></span></p>
</div>
我需要的是:
<div>
<span>a<br/>bc</span>
<p>te<br>st</p>
</div>
谁能帮我?
如果我理解你想要实现的目标,这应该可以解决你的问题:
string input = @"
<div>
<p><span><br></span></p>
<span>a<br/>bc</span>
<p>te<br>st</p>
<p>'n<span>'n</span></p>
<p><span><br/></span></p>
</div>
";
string pattern = @"(<p>)?(''n|<br/?>)?<span>(<br/?>|''n)</span>(</p>)?";
System.Text.RegularExpressions.Regex reg = new System.Text.RegularExpressions.Regex(pattern);
string final = reg.Replace(input, String.Empty);
Console.WriteLine(final);
}
上述代码将返回:
<div>
<span>a<br/>bc</span>
<p>te<br>st</p>
</div>
然后,您可以继续修剪任何一条线,因为它看起来需要它。
问题中没有提到是要清理客户端还是服务器端的内容。
如果应该在服务器上完成,请不要使用regex。为什么?看看这个绝妙的答案。请改用HTML解析器。例如,使用HtmlAgityPack:
var doc = new HtmlDocument();
doc.LoadHtml(html);
foreach(var node in doc.DocumentNode.SelectNodes("//div|//span|//p"))
if (string.IsNullOrWhiteSpace(node.InnerText.Replace(@"'n", string.Empty)))
node.Remove();
var result = doc.DocumentNode.OuterHtml;
但是,通过使用jQuery:,它可以在客户端上更简单地完成(也没有regex)
var dom = $(html);
dom.find('p,span,div').each(function() {
if ($(this).text().trim() == '')
$(this).remove();
});
var result = dom.wrap('<div>').parent().html();
相关文章:
- RegEx删除空属性?例如,如果(class=“”||class=“”)移除;否则就下课
- Javascript Regex-删除未捕获的组
- Regex删除:(包括:)之后的所有内容
- regex删除除回车以外的空格
- 通过regex删除部分url
- JavaScript-Regex删除代码/特殊字符/数字等
- Regex删除涉及零或一的冗余乘法/除法
- javascript:如何使用regex删除两个特殊字符之间的逗号(,)
- Regex-删除最多秒的空白
- Javascript/REGEX:删除字符串中以特定字母开头的特定文本(单词),单词之间用空格分隔
- 在JavaScript中使用Regex删除下划线
- 如何在javascript和c中使用regex删除空行
- Javascript/regex:删除方括号之间的文本
- 使用regex删除除具有特定类的html之外的所有html标记
- Regex删除空白和新行
- C#Regex删除C风格的注释并提取括号之间的文本
- Regex删除空格
- JS Regex:删除单词后的任何内容(ONLY)
- JS Regex删除某些html标签之外的所有内容(包括标签)
- 使用RegEx删除指数的尾随零