可能重复:
如何在 jQuery 中截断字符串?
我正在使用 jQuery 从 Facebook 提取提要,并希望限制每个消息字符串中显示的单词/字符的数量。
即如果字符串包含超过 100 个字符,它应该停在最近的空间并放 '... 阅读更多 '
简单地说,我该怎么做?
可能重复:
如何在 jQuery 中截断字符串?
我正在使用 jQuery 从 Facebook 提取提要,并希望限制每个消息字符串中显示的单词/字符的数量。
即如果字符串包含超过 100 个字符,它应该停在最近的空间并放 '... 阅读更多 '
简单地说,我该怎么做?
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);
警告:这是一种简单的方法。正确省略将涉及在字符限制之前的第一个空白字符处截断字符串。浏览器对此提供支持(通过 CSS 参数),但它们没有添加您想要的“阅读更多”字符串,并且试图使其正常工作是一团糟,至少我上次在 Opera 中尝试过, 火狐, 铬, IE...