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