jQuery中的字限制器(在XX字符后切断最近的空格并添加…’阅读更多’)

可能重复:
如何在jQuery中截断字符串?

我正在使用jQuery从Facebook提取一个提要,并希望限制每个消息字符串中显示的字/字符数。

即如果字符串包含超过100个字符,它应该停在最近的空格并放入’… read more’

我怎么能这样做呢?

function truncateString (string, limit, breakChar, rightPad) { if (string.length <= limit) return string; var substr = string.substr(0, limit); if ((breakPoint = substr.lastIndexOf(breakChar)) >= 0) { if (breakPoint < string.length -1) { return string.substr(0, breakPoint) + rightPad; } } return string; } 

你可以在这里测试这个函数jsfiddle

或者使用此代码进行测试

var text ='万维网。 当你的普通人在街上'; console.log(truncateString(text,52,'','...'));

你可以写一个简单的函数来做到这一点,纯粹和直接的javascript,如:

 // Function that truncates string at the 10th char and appends '... (read more)' // if the string has more than 10 chars var ellipsize_special = function (string) { if (string.length > 10) { return string.substring(0,10) + "... (read more)"; } else { return string; } } 

测试它:

  var short_str = "apple"; var long_str = "pineapple juice"; ellipsize_special(short_str); ellipsize_special(long_str); 

警告:这是一个简单的方法。 正确地进行椭圆化将涉及在char限制之前的第一个空白字符处截断字符串。 浏览器支持(通过CSS参数),但它们不会添加您想要的“读取更多”字符串,并且尝试使其正常工作,至少在我最后一次尝试时,在Opera中是一团糟,Firefox,Chrome,IE ……