从字符串中删除HTML

时间:2014-07-09 07:16:22

标签: c# javascript jquery html encoding

我有一张桌子(Wijmo Grid)。 Log列需要一些文本。

允许用户在文本中写HTML,因为邮寄时也会使用相同的文字,以使其看起来漂亮且风格很好。

让我们说文字是:

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

是否有任何方法或JSON.stringify()og HTML.enocde()我可以/应该用来获取:

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

其中一个问题是,如果文本包含"<br>",它会突破到下一行i表格的行,并且可以看到行中第二行的上半部分,女巫看起来不太好。

3 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

您可以尝试这样:

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代码库   你解析“out of the web”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)

答案 2 :(得分:1)

据我了解你的问题,你可以用C#

编码这样的值
string encodedValue= HttpUtility.HtmlEncode(txtInput.Text);

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