为textarea自动加倍新线?

时间:2013-12-19 06:25:45

标签: jquery regex

我希望这样,当用户按下回车键进行换行时,它会产生双重中断:\n\n

有没有办法通过jQuery&正则表达式?

最好在粘贴文本时,将单个中断转换为双重中断。

最终的结果将是一个文本区域,其中几乎不可能进入一个单独的新线而不是两个。

3 个答案:

答案 0 :(得分:1)

试试这个http://jsfiddle.net/psXn5/

// main code
function replaceLineBreak() {
    // save caret position
    var caret = $(this).caret();
        text = $(this).val();

    // adjust caret position
    var linebreak = text.match(/\n/g);
    if (linebreak != null) {
        caret += linebreak.length * 3
    }

    $(this).val( text.replace(/\n/g, "\\n\\n") );

    // restore caret position
    $(this).caret(caret);
}

// update on change
$('textarea').change(replaceLineBreak);

// update on key up
$('textarea').keyup(replaceLineBreak);

答案 1 :(得分:0)

我无法清楚地了解你在寻找什么。以下是添加两个中断的示例Fiddle

$('#textareaid').keyup(function() {
   $('#divid').html($(this).val().replace(/\n/g,'<br/><br/>')); 
});

如果您想在输入键上添加\n\n,请按此

$('#textareaid').keypress(function(event) {
if (event.which == 13) {
event.preventDefault();
var s = $(this).val();
$(this).val(s+"\n\n");
}
});​

答案 2 :(得分:0)

$('#textbox').keyup(function (e) {
if (e.keyCode == 13) {
    $("#textbox").append("\n\n");
}
});

它检查您的点击是否输入,然后它会在文本框的末尾添加两个\ n。鉴于您的textarea被称为文本框。