如何在JavaScript中用\替换\ n?

时间:2011-06-13 14:38:23

标签: javascript jquery regex

我有一个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);
    }
});

11 个答案:

答案 0 :(得分:27)

替换为全局范围

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

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

答案 1 :(得分:11)

可以这样做:

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

编辑:抱歉...不应引用javascript中的正则表达式

working example

答案 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.orgthis 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');
}

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

答案 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 />");