在 Javascript 中修剪和创建文本省略号不是基于字符数而是基于换行符数

发布于 2024-10-26 23:17:58 字数 104 浏览 3 评论 0原文

我想编写一个函数,它接受一些文本并根据它的换行符数量对其进行修剪,我希望它在遇到 6 个换行符后修剪并放置“...阅读更多”,有点像Facebook 如何处理评论和墙贴。

谢谢。

I want to program a function that takes in some text and makes a trim on it based on the number of line breaks it has, I want it to trim and place "... Read more" after it hits 6 line breaks, sorta like what Facebook does with comments and wall posts.

Thank you.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

三月梨花 2024-11-02 23:17:58

您可以使用全局正则表达式的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

*/

You can use the lastIndex property of a global regular expression.

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

*/
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文