如何在JavaScript中用替换\ n?

我有一个textarea,我在用户按下回车时插入\n 。 来自此textarea的代码通过jQuery.ajax()发送到WCF服务。 我无法在数据库中保存\n ,因为它不会在使用该服务的其他应用程序中显示。

如何用
标签替换\n

很多人尝试使用/ g(全局修饰符)使用Javascript Regex。 最后,我已经插入了两次,我不知道为什么,我唯一的猜测是在keypress事件上的jQuery创建了我调试的双\ n。

 $('#input').keypress(function (event) { if (event.which == '13') { inputText = $('#input').val() + '\n'; $('#input').val(inputText); } }); 

替换为全球范围

 $('#input').val().replace(/\n/g, "
")

要么

 $('#input').val().replace("\n", "
", "g")

可以这样做:

 $('textarea').val().replace(/\n/g, "
");

编辑 :对不起…不应该引用javascript中的正则表达式

工作实例

就像在评论和其他答案中所说的那样,最好在服务器端进行。

但是,如果您想知道如何在客户端上执行此操作,这是一个简单的修复:

 textareaContent.replace(/\\n/g, "
");

其中textareaContenttextareaContent中数据的变量。

编辑:已更改,以便全局替换,而不仅是第一次匹配。

如果你支持PHP,你应该检查一下: http : //php.net/manual/en/function.nl2br.php

在其他答案的基础上,这可能是最好的PHP。 现在假设您不想ajax(这将是毫无意义并导致不必要的服务器负载),您应该使用phpjs.org的此函数的javascript端口:

 function nl2br (str, is_xhtml) { // Converts newlines to HTML line breaks // // version: 1103.1210 // discuss at: http://phpjs.org/functions/nl2br // + original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) // + improved by: Philip Peterson // + improved by: Onno Marsman // + improved by: Atli Þór // + bugfixed by: Onno Marsman // + input by: Brett Zamir (http://brett-zamir.me) // + bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) // + improved by: Brett Zamir (http://brett-zamir.me) // + improved by: Maximusya // * example 1: nl2br('Kevin\nvan\nZonneveld'); // * returns 1: 'Kevin\nvan\nZonneveld' // * example 2: nl2br("\nOne\nTwo\n\nThree\n", false); // * returns 2: '
\nOne
\nTwo
\n
\nThree
\n' // * example 3: nl2br("\nOne\nTwo\n\nThree\n", true); // * returns 3: '\nOne\nTwo\n\nThree\n' var breakTag = (is_xhtml || typeof is_xhtml === 'undefined') ? '' : '
'; return (str + '').replace(/([^>\r\n]?)(\r\n|\n\r|\r|\n)/g, '$1' + breakTag + '$2'); }

http://phpjs.org/functions/nl2br:480

您可以使用简单的javascript字符串函数。

  string.replace("\n", "
")

从你的WCF服务中你可以不只是使用String.Replace

 text = text.Replace("\n","
");
 var replaced = $('#input').val().replace("\n", "
");

例如,你可以在regex的帮助下使用内置替换函数的javascript

 $('#input').val().replace(/\n\r?/g, '
')

此代码将返回所有替换为
输入

以下将用
替换\n所有实例:

 while (message.indexOf("\\n") !== -1) { message = message.replace("\\n", "
"); }