如何在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, "
");
其中textareaContent
是textareaContent
中数据的变量。
编辑:已更改,以便全局替换,而不仅是第一次匹配。
如果你支持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'); }
您可以使用简单的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", "
"); }