检查div内容是否以换行符开头并删除它们

时间:2013-12-26 18:19:10

标签: javascript jquery

有没有办法检查div的内容是否以换行符开头?如果是,则删除所有前导换行,直到第一个不是换行符。我试过了,

if ($('#div').text().substring(0, 1) == '\n'){
    $('#div').text($('#div').text().replace("\n",""));
}

以上示例检查div内容是否以1换行开头。当然,你已经在这里看到了限制。 Div可以从多个新线开始。另外,我不想删除第一个正确字符后可能出现的新行。

     <- must be removed
     <- must be removed
      .
      .
      .
      n
a
a
a
     <- must not be removed
a
a

另一种情况可能是div在没有新行的情况下开始,在这种情况下不应删除任何内容。

编辑:此外,div的内容可能很大,因此循环可能不是一个优雅的解决方案。

3 个答案:

答案 0 :(得分:4)

使用正则表达式替换:

$('#div').text(function(i, orig) {
    return orig.replace(/^\n+/, '');
});

DEMO

答案 1 :(得分:1)

如果您需要任何空白字符(包括换行符),并且要删除div的实际内容之前,> 的答案,则可以使用此 -

$('#div').text(function(i, orig) {
    updated = orig.replace(/^\s+/, '');
    return updated;
});

答案 2 :(得分:0)

使用split,然后filter使用已形成的数组的空元素,然后使用join重新加入

$('#div').text($('#div').text().split('\n').filter(function (e) {
    return e != ""
}).join('\n'));

DEMO

不可否认,这不会像你想的那样正常工作。如果有连续\n s(在您的内容中间某处),它会将它们分成一个换行符。