截断句子到一定数量的单词

时间:2011-09-10 21:17:26

标签: javascript

如何将句子截断为一定数量的单词(NB。不是字母)?

我想用split(" "),但那我怎么算出单词?

例如:

  • Javascript word count cut off => Javascript word count
  • Want better search results? See our search tips! => Want better search

4 个答案:

答案 0 :(得分:30)

您可以使用split [MDN]join [MDN]

"Want better search results? See our search tips".split(" ").splice(0,3).join(" ")

答案 1 :(得分:4)

这是我为Meteor应用程序编写的“阅读更多”功能。它接受maxWords参数并使用jquery的text()方法剥离html标记。

希望它有所帮助!

function readMore(string, maxWords) {       
    var strippedString = $("<p>" + string + "</p>").text().trim();      
    var array = strippedString.split(" ");
    var wordCount = array.length;
    var string = array.splice(0, maxWords).join(" ");

    if(wordCount > maxWords) {
        string += "...";
    }

        return string ;
}

答案 2 :(得分:0)

带有ES6的纯解决方案,默认为10个字

const truncate = (str, max = 10) => {
  const array = str.trim().split(' ');
  const ellipsis = array.length > max ? '...' : '';

  return array.slice(0, max).join(' ') + ellipsis;
};

答案 3 :(得分:-1)

正如您所描述的那样,拆分工作。但是,如果使用RegExp,则不必拆分整个字符串:

var str = "Lions and tigers and bears";
var exp = /[A-Z|a-z]+/g;

var a = exp.exec(str); // Lions
var b = exp.exec(str); // and
var c = exp.exec(str); // tigers