CommunityX10nD提出了一个问题:nl2br() equivalent in javascript [duplicate],或许与您遇到的问题类似。
回答者monsur.hoqoezi给出了该问题的处理方式:
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') ? '
' : '
';
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
s to #TextArea) do this:
$('#TextArea').keypress(function(evt){
$('#TextArea').html(nl2br($('#TextArea').val())); // replace linebreaks first
$('#TextArea1').html($('#TextArea').val()); // copy to #TextArea1
});
希望本文对你有帮助,欢迎支持JavaScript中文网