0

私がやろうとしているのは、書式設定のために2つの改行を許可することですが、3つ以上が表示されないようにすることです(送信前のプレビューでは、phpでそれを取り除くことはできません)

私はから始めました

var breakTag = (is_xhtml || typeof is_xhtml === 'undefined') ? '<br />' : '<br>';    
return (str + '').replace(/([^>\r\n]?)(\r\n|\n\r|\r|\n){2,}/g, '$1'+ breakTag +'$2');

追加してみました{2,}

var breakTag = (is_xhtml || typeof is_xhtml === 'undefined') ? '<br />' : '<br>';    
return (str + '').replace(/([^>\r\n]?)(\r\n|\n\r|\r|\n){2,}/g, '$1'+ breakTag +'$2');

で提供<textarea>

this is user input
i have inserted 1 line break


i have inserted 3 line breaks



i have inserted 4 line breaks

私が欲しいのは

this is user input
i have inserted 1 line break

i have inserted 3 line breaks

i have inserted 4 line breaks

私が得ているのは

this is user inputi have inserted 1 line break
i have inserted 3 line breaks
i have inserted 4 line breaks

{2,} がない場合、入力として表示されます

最初にテキストエリアに 2 つ以上の改行を連続して入力しないようにし、プレビューでクリーンアップすることができればボーナスです。

* 編集 *

$('textarea').keyup(function()
{
    var myString = $(this).val();
    myString = nl2br(myString);
    $('#preview').html(myString);
});

function nl2br (str, is_xhtml)
{
    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');
}
4

1 に答える 1