将输入的NewLines转换为<br/>标签

时间:2014-08-19 15:59:24

标签: javascript jquery css asp.net

我已经实现了一个代码,其工作原理如下: -

点击“输入”会生成<br />标记。我希望它应该生成我想要的<br />,每当用户点击输入它时应该生成<br />标签,但同时它不应该是可见的。请找到供您参考的代码: -

<script type="text/javascript">
   function EnterEventDesc(e) {
       if (e.keyCode == 13) {
           var input = $("#ctl00_ContentPlaceHolder1_txtJobDesc");
           input.val(input.val() + "<br/>");
           return false;
       } else {
           return true;
       }

   }
 </script>  

<br />标记即将发布,但我想同时隐藏它。请帮忙

3 个答案:

答案 0 :(得分:1)

您似乎正在使用ASP.Net并尝试将Input的NewLines转换为<br />标记,以便在其他地方使用,例如在数据库中保存。 如果你的方法是错误的,那么让用户使用Enter键在textarea中创建新行,完全删除js代码然后在代码隐藏中使用这个函数:

<强> C#:

public static string LineBreaksTextToDB(string input)
{
    return System.Text.RegularExpressions.Regex.Replace(input, "([^\\r])[\\n]", "$1\\r\\n").Replace("\\r\\n", "<br />");
}


VB.NET:

Public Shared Function LineBreaksTextToDB(ByVal input As String) As String
    Return System.Text.RegularExpressions.Regex.Replace(input, "([^\r])[\n]", "$1\r\n").Replace("\r\n", "<br />")
End Function

然后做这样的事情:

... = LineBreaksTextToDB(txtMyInput.Text)

并且所有NewLines都转换为<br />标记。


更新
如果要在输入中回调此已保存的数据,则需要再次将<br />转换为NewLine。但是,如果您尝试以Lable之类的方式显示数据,则无需执行任何操作,因为<br />标记会自动以HTML格式实现。

<强> C#:

public static string LineBreaksDBToText(string input)
{
    return input.Replace("<br />", System.Environment.NewLine);
}


VB.NET:

Public Shared Function LineBreaksDBToText(ByVal input As String) As String
    Return input.Replace("<br />", vbCrLf)
End Function

然后做这样的事情:

txtMyInput.Text = LineBreaksDBToText(myDatabaseTable.myField)

并且所有<br />标记都转换为NewLines。

注意:我不确定C#它只是使用This Convertor传送VB代码。

答案 1 :(得分:0)

如果您想要换行,可以插入"\n"代替<br>

答案 2 :(得分:0)

如果您使用的是textarea,则说明文字不需要<br>

将纯文本换行符\n转换为后端的<br>

或者,当使用textarea(WYSIWYG编辑器)的HTML替换时,您可以通过CSS设置换行符。

#myEditorBox {
    white-space: pre;
}