Как отрезать строку после первой строки в параграфе

У меня есть строка, показанная ниже:

XXX:Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur cursus lacus sed
justo faucibus id pellentesque nunc porttitor. Sed venenatis tempor dui, nec mattis dolor
ultrices at. Duis suscipit, dolor sed fringilla interdum, magna libero tempor quam, sed
molestie dui urna sed tellus.

Как я могу добавить ограничение и вырезать строку в первой строке? (используя javascript).

Конечный результат, который я ожидаю, следующий:

XXX:Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur...

Ответы

Ответ 1

var firstLine = theString.split('\n')[0];

Ответ 2

Используйте дополнительный параметр предела для повышения производительности

Tomalak его ответ правильный, но если вы действительно хотите соответствовать только первой строке, полезно передать необязательный второй параметр limit. Подобным образом вы предотвращаете разделение длинной строки (с тысячами строк) до конца до возвращения первого совпадения.

При установке необязательного limit в 1 мы сообщаем методу вернуть результат, как только будет найдено первое совпадение с повышенной производительностью.

var firstLine = theString.split('\n', 1)[0];

Подробнее о пределе param например, здесь, в документах MDN

Ответ 3

Если есть фактические строки, а не просто какая-то автоматическая упаковка, вы можете сделать это:

str = str.substr(0, str.indexOf("\n"));

http://jsfiddle.net/f6uBT/

Ответ 4

Интересная дискуссия о "обернутом тексте"... Возможно, это больше проблема HTML, чем проблема с javascript...

Возможно, вы действительно хотите ограничить высоту элемента HTML и установить "overflow = hidden". Затем он отобразит столько, сколько может вместить в одну строку, и скрыть остальные. (но вы не получите маленького "..." в конце)

Ответ 5

function getFirstLine(str){
    var breakIndex = str.indexOf("\n");

   // consider that there can be line without a break
    if (breakIndex === -1){
        return str;
    }

    return str.substr(0, breakIndex);
}

getFirstLine('first line\nsecond line'); // first line

getFirstLine('text without line break'); // text without line break

Ответ 6

эту функцию следует использовать

string.split(разделитель, [предел])

separator - char для разделения [ "." или \r\n...] limit - необязательный, int для ограничения максимальных символов

Ответ 7

var str = document.getElementsByTagName("div")[0].innerHTML;

var firstLine = function(input,cutlength,appendtext){
    if(input.length<=cutlength)
        return input;
    return input.substr(0,cutlength) + appendtext;
}


alert(firstLine(str,50,"..."));

edit - здесь ссылка на скрипку http://jsfiddle.net/a3C86/