1

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

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

即如果字符串包含超过 100 个字符,它应该停在最近的空间并放 '... 阅读更多 '

简单地说,我该怎么做?

4

2 回答 2

5
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, ' ', '...'));

于 2012-11-25T11:19:57.453 回答
2

您可以编写一个简单的函数来执行此操作,纯 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);

警告:这是一种简单的方法。正确省略将涉及在字符限制之前的第一个空白字符处截断字符串。浏览器对此提供支持(通过 CSS 参数),但它们没有添加您想要的“阅读更多”字符串,并且试图使其正常工作是一团糟,至少我上次在 Opera 中尝试过, 火狐, 铬, IE...

于 2012-11-25T10:35:14.107 回答