我有一个textarea,当用户按Enter键时我插入\n
。此textarea中的代码通过jQuery.ajax()
发送到WCF服务。我无法将\n
保存在DB中,因为它不会在使用该服务的其他应用程序中显示。
如何使用\n
代码替换<br />
?
溶液
很多人尝试使用/ g(全局修饰符)使用Javascript Regex。 最后我已经插入了两次,我不知道为什么,我唯一的猜测就是我在keypress事件上创建的jQuery是我调试的。\ / p>
$('#input').keypress(function (event) {
if (event.which == '13') {
inputText = $('#input').val() + '\n';
$('#input').val(inputText);
}
});
答案 0 :(得分:27)
替换为全局范围
$('#input').val().replace(/\n/g, "<br />")
或
$('#input').val().replace("\n", "<br />", "g")
答案 1 :(得分:11)
答案 2 :(得分:6)
就像在评论和其他答案中所说的那样,最好在服务器端进行。
但是,如果您想知道如何在客户端执行此操作,这是一个简单的解决方法:
textareaContent.replace(/\\n/g, "<br />");
其中textareaContent
是textarea中数据的变量。
修改:已更改,以便全局替换,而不仅是第一次匹配。
答案 3 :(得分:2)
如果你支持PHP,你应该检查一下:http://php.net/manual/en/function.nl2br.php
答案 4 :(得分:2)
在其他答案的基础上,这可能是最好的PHP。现在假设您不想ajax(这将是毫无意义并导致不必要的服务器负载),您应该使用phpjs.org的this function的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: '<br>\nOne<br>\nTwo<br>\n<br>\nThree<br>\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') ? '' : '<br>';
return (str + '').replace(/([^>\r\n]?)(\r\n|\n\r|\r|\n)/g, '$1' + breakTag + '$2');
}
答案 5 :(得分:1)
您可以使用简单的javascript字符串函数。
string.replace("\n", "<br>")
答案 6 :(得分:1)
您可以在WCF服务中使用String.Replace
?
text = text.Replace("\n","<br />");
答案 7 :(得分:1)
var replaced = $('#input').val().replace("\n", "<br/>");
答案 8 :(得分:1)
你可以使用javascript内置的替换功能,只需要一点regex的帮助,例如
$('#input').val().replace(/\n\r?/g, '<br />')
此代码将返回已替换为<br>
答案 9 :(得分:1)
以下内容将\n
替换为<br />
的所有实例:
while (message.indexOf("\\n") !== -1) {
message = message.replace("\\n", "<br />");
}
答案 10 :(得分:0)
我知道这是一个古老的问题/答案,但它是第一个出现在谷歌搜索上的问题,并且在遥远的未来不再适用于当前的浏览器。
将 \n
转换为 <br />
(至少对我而言)的正确答案是:
text = text.Replace(/\\n/g,"<br />");