我启用了一个非常简单asp:textbox的multiline属性.然后我接受文本框中没有标记的文本.有没有通过换行和回报可以转换为一个共同的方法<p>和<br/>标签?
我不是在寻找任何惊天动地的东西,但与此同时,我不只是想做一些像:
html.Insert(0, "<p>");
html.Replace(Enviroment.NewLine + Enviroment.NewLine, "</p><p>");
html.Replace(Enviroment.NewLine, "<br/>");
html.Append("</p>");
Run Code Online (Sandbox Code Playgroud)
上面的代码无法正常工作,如生成正确的html,如果一行中有两个以上的换行符.拥有html <br/></p><p>并不好; 在<br/>可以被删除.
ese*_*elk 23
我知道这是旧的,但经过一些搜索我找不到更好的东西,所以我正在使用的是:
public static string TextToHtml(string text)
{
text = HttpUtility.HtmlEncode(text);
text = text.Replace("\r\n", "\r");
text = text.Replace("\n", "\r");
text = text.Replace("\r", "<br>\r\n");
text = text.Replace(" ", " ");
return text;
}
Run Code Online (Sandbox Code Playgroud)
如果由于某种原因你不能使用HttpUtility,那么你将不得不以其他方式进行HTML编码,并且需要担心许多小细节(不仅仅是<>&).
HtmlEncode只为你处理特殊字符,所以在此之后我将任何回车和/或换行的组合转换为BR标签,并将任何双空格转换为单空格加上NBSP.
您可以选择在最后一部分使用PRE标记,如下所示:
public static string TextToHtml(string text)
{
text = "<pre>" + HttpUtility.HtmlEncode(text) + "</pre>";
return text;
}
Run Code Online (Sandbox Code Playgroud)
Pau*_*sik 10
您的另一个选择是获取文本框内容,而不是尝试换行,段落中断只是将文本放在PRE标记之间.像这样:
<PRE>
Your text from the text box...
and a line after a break...
</PRE>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
29870 次 |
| 最近记录: |