【发布时间】:2011-06-13 14:38:22
【问题描述】:
我有一个文本区域,当用户按下回车键时,我在其中插入 \n。此文本区域中的代码通过jQuery.ajax() 发送到 WCF 服务。我无法将\n 保存在数据库中,因为它不会显示在使用该服务的其他应用程序中。
如何将\n 替换为<br /> 标签?
解决方案
你们中的许多人都尝试过,有些人使用带有 /g(全局修饰符)的 Javascript 正则表达式得到了正确的结果。 最后我 \n 插入了两次,我不知道为什么,我唯一的猜测是 jQuery on keypress 事件创建了我调试的双 \n。
$('#input').keypress(function (event) {
if (event.which == '13') {
inputText = $('#input').val() + '\n';
$('#input').val(inputText);
}
});
【问题讨论】:
-
通常在客户端替换它不是一个好主意
-
@Teneff, \n 没有发送到服务器,似乎省略了。我可以在服务器上更改它,但除了文本之外我什么也没有收到。
-
您还应该以输入的原始格式存储它,如果您添加了一个新应用程序来检索可以支持 /n 的数据,那么您肯定应该显示它吗?你试过编码吗?
-
是
#input还是<input type="text"/>?因为如果是,您将不会得到任何\n。如果它是文本区域,我建议您在用户单击按钮提交时转换数据,而不是在输入时转换数据。但比我只在服务器端转换更好。 -
@BrunoLM,#input 是 textarea,当我从服务器取回数据时,我确实将 \n 替换为 :br: 并在提交时将 :br: 替换为 br html 标记。为什么我不在服务器上执行此操作,因为除了 br 标签之外,我还有图像和图像标签很长,可以通过服务发送到 jQuery 包装器,所以我用冒号标记我需要的标签,就像论坛用 [tagname]
标签: javascript jquery regex