Обрезка и создание многоточия текста в Javascript НЕ на основе количества символов, а на количестве разрывов строк - PullRequest
1 голос
/ 27 марта 2011

Я хочу запрограммировать функцию, которая принимает некоторый текст и выполняет его обрезку на основе количества разрывов строк, которые я хочу, я хочу, чтобы он обрезал и поместил «... Читать дальше» после того, как он достигнет 6 разрывов строк. Что-то вроде того, что Facebook делает с комментариями и постами на стене.

Спасибо.

Ответы [ 2 ]

1 голос
/ 27 марта 2011

Вы можете использовать свойство lastIndex глобального регулярного выражения.

var str= 'one\ntwo\nthree\nfour\nfive\nsix\n',
rx=  /((.+\n+){3})/g,
m= rx.exec(str),
cut= rx.lastIndex;
if(cut){
    first3lines= m[1].replace(/\s+$/, '...');
    remainder= str.substring(cut);
}
else{
    first3lines= str;
    remainder= '';
}


alert('first 3 lines:\n'+first3lines+'\n\nremainder:\n'+remainder);
/*  returned value:

first 3 lines:
one
two
three...

remainder:
four
five
six

*/
0 голосов
/ 27 марта 2011

Это может быть интересно: http://blog.mattschwarz.me/post/2688505800/introducing-clamp-js

...