nl2br () эквивалентно в javascript

Возможный дубликат:
jQuery конвертировать разрывы строк в br (эквивалент nl2br)

В настоящее время я добавляю <BR> для каждого evt.which == 13 . Есть ли nl2br() для JavaScript, поэтому я могу покончить с этим evt.which == 13 ?

Насколько это отличается от php.js

 $('#TextArea').keypress(function(evt) { if (evt.which == 13) { var range = $('#TextArea').getSelection(); var image_selection = range.text; $('#TextArea').replaceSelection('<BR>'); $('#TextArea1').html($('#TextArea').val()); } }); 

    Взгляните на nl2br на php.js, который кажется именно тем, что вы ищете. В основном это:

     function nl2br (str, is_xhtml) { var breakTag = (is_xhtml || typeof is_xhtml === 'undefined') ? '<br />' : '<br>'; return (str + '').replace(/([^>\r\n]?)(\r\n|\n\r|\r|\n)/g, '$1' + breakTag + '$2'); } 

    РЕДАКТИРОВАТЬ:
    ваш пример с использованием nl2br() может быть изменен следующим образом:

     $('#TextArea').keypress(function(evt){ $('#TextArea1').html(nl2br($('#TextArea').val())); }); 

    (обратите внимание, что это обновляет #TextArea1 на каждом нажатии клавиши и не меняет значение #TextArea которое, как я думаю, вы ищете, но я могу быть недоразумением)

    EDIT2:
    Если вы хотите получить поведение своей старой функции (с вставкой <br/> s в #TextArea ), выполните следующие действия:

     $('#TextArea').keypress(function(evt){ $('#TextArea').html(nl2br($('#TextArea').val())); // replace linebreaks first $('#TextArea1').html($('#TextArea').val()); // copy to #TextArea1 }); 

    Вот функция nl2br в php.js.

     function nl2br (str, is_xhtml) { // http://kevin.vanzonneveld.net // + 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<br />\nvan<br />\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: '<br />\nOne<br />\nTwo<br />\n<br />\nThree<br />\n' var breakTag = (is_xhtml || typeof is_xhtml === 'undefined') ? '<br ' + '/>' : '<br>'; // Adjust comment to avoid issue on phpjs.org display return (str + '').replace(/([^>\r\n]?)(\r\n|\n\r|\r|\n)/g, '$1' + breakTag + '$2'); }