salto nltobr n2br linea eliminar php javascript jquery phpjs

nltobr - salto de linea php br



nl2br() equivalente en javascript (2)

Posible duplicado:
jQuery convertir saltos de línea a br (nl2br equivalente)

Actualmente agrego <BR> para cada evt.which == 13 . ¿Hay un nl2br() para JavaScript, entonces puedo eliminar este evt.which == 13 ?

¿Qué tan diferente es esto de 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()); } });


Aquí hay una función nl2br en 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''); }


Eche un vistazo a nl2br en php.js que parece exactamente lo que está buscando. Básicamente, es:

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''); }

EDITAR:
su ejemplo usando nl2br() puede cambiarse así:

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

(Tenga en cuenta que esto actualiza #TextArea1 en cada pulsación de tecla y no cambia el valor de #TextArea que es lo que creo que está buscando, pero podría estar malentendiendo)

EDIT2:
Si desea obtener el comportamiento de su función anterior (con la inserción de <br/> s en #TextArea ) haga esto:

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