nl2br() equivalent in javascript [duplicate]
Take a look at nl2br on php.js which seems exactly what you're looking for. Basically, it's:
function nl2br (str, is_xhtml) { if (typeof str === 'undefined' || str === null) { return ''; } 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');}
EDIT:
your example using nl2br()
may be changed like this:
$('#TextArea').keypress(function(evt){ $('#TextArea1').html(nl2br($('#TextArea').val())); });
(note that this updates #TextArea1
on every keypress and doesn't change the value of #TextArea
wich is what I think you're looking for, but I might be misunderstanding)
EDIT2:
If you want to get the behaviour of your old function (with inserting <br/>
s to #TextArea
) do this:
$('#TextArea').keypress(function(evt){ $('#TextArea').html(nl2br($('#TextArea').val())); // replace linebreaks first $('#TextArea1').html($('#TextArea').val()); // copy to #TextArea1 });
Here is a function nl2br in 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');}