繁体   English   中英

从字符串中删除HTML

[英]Removing HTML from a string

我有一张桌子(Wijmo网格)。 日志列中包含一些文本。

允许用户在文本中编写HTML ,因为邮寄时也会使用相同的文本,以使其外观漂亮且样式精美。

假设文字为:

var text = "Hello friend <br> How are you? <h1> from me </h1>";

我可以/应该使用任何方法或JSON.stringify()和HTML.enocde()来获取:

var textWithoutHtml = magic(text); // "Hello friend How are you? from me"

问题之一是,如果文本包含"<br>"则它会折断到表格行的下一行,并且有可能看到该行第二行的上半部分,但女巫看起来不太好。

var text = "Hello friend <br> How are you? <h1> from me </h1>";
var newText = text.replace(/(<([^>]+)>)/ig, "");

小提琴: http//jsfiddle.net/EfRs6/

您可以这样尝试:

string s = Regex.Replace("Hello friend <br> How are you? <h1> from me </h1>", @"<[^>]+>|&nbsp;", "").Trim();

您还可以检查HTML Agility Pack

这是一个敏捷的HTML解析器,它构建了一个读/写DOM并支持纯XPATH或XSLT(您实际上不必了解XPATH或XSLT来使用它,不用担心...)。 这是一个.NET代码库,可让您解析“网络外” HTML文件。 该解析器对“真实世界”格式的HTML十分宽容。 对象模型与提出System.Xml的对象模型非常相似,但用于HTML文档(或流)。

<[^>]+>|&nbsp;/
1st Alternative: <[^>]+>
< matches the characters < literally
[^>]+ match a single character not present in the list below
Quantifier: Between one and unlimited times, as many times as possible, giving back as needed [greedy]
> a single character in the list > literally (case sensitive)
> matches the characters > literally
2nd Alternative: &nbsp;
&nbsp; matches the characters &nbsp; literally (case sensitive)

据我了解您的问题,您可以在C#中编码这样的值

string encodedValue= HttpUtility.HtmlEncode(txtInput.Text);

注意:此处txtInput是页面上TextBox的ID。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM