Javascript/jQuery从字符串中获取前100个字符,尊重完整的单词

Pra*_*tik 2 html javascript regex jquery substring

我遇到了很多关于此的问题,我找到了仅适用于PHP的解决方案.这个站点上没有jQuery/javascript方法的解决方案.

我想要做的是我想要显示前100个字符,但我不想删掉最后一个字,因为它将毫无意义.

就像说this is myself是最后一个单词所以它我们经常采用子串并且y是第100个单词,然后它会削减它this is my,这意味着更少.所以我想要它this is..

我原来的代码:

jQuery(".block-text .success-inner-content").each(function(){
    if(jQuery(this).text().length > 100){
        jQuery(this).text(jQuery(this).text().substr(0,98)+'..');
    }
});
Run Code Online (Sandbox Code Playgroud)

这里的block-text .success-inner-content类是循环生成Div的列表,其中包含文本.

Guf*_*ffa 9

lastIndexOf方法采用第二个参数来确定搜索的开始位置,因此您无需在查找最后一个空格之前剪切字符串:

jQuery(".block-text .success-inner-content").each(function () {
  var text = jQuery(this).text();
  if (text.length > 100) {
    jQuery(this).text(text.substr(0, text.lastIndexOf(' ', 97)) + '...');
  }
});
Run Code Online (Sandbox Code Playgroud)

您也可以使用该text方法而不是each循环元素并为每个元素设置文本:

jQuery(".block-text .success-inner-content").text(function (i, text) {
  return text.length > 100 ? text.substr(0, text.lastIndexOf(' ', 97)) + '...' : text;
});
Run Code Online (Sandbox Code Playgroud)