1. ホーム
  2. php

javascriptでのnl2br()の同等品 [重複] [重複

2023-09-29 02:04:36

質問

重複の可能性があります。

jQueryで改行をbrに変換する(nl2br相当)。

現在、私は <BR> を追加しています。 evt.which == 13 . があるか? nl2br() を廃止して、この 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());
    }
});

どのように解決するのですか?

を見てみましょう。 php.jsのnl2br を見てみてください。まさにあなたが探しているものだと思います。基本的に、それは

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です。

を使用した例です。 nl2br() はこのように変更することができます。

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

(これは #TextArea1 の値は変更されません。 #TextArea の値を変更しないことです。これはあなたが探しているものだと思いますが、私は誤解しているかもしれません)

EDIT2です。

もし、昔の関数の挙動を得たいのであれば、(挿入された <br/>#TextArea ) をこうしてください。

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