2011-09-10 35 views
8

句子如何被截斷爲一定數量的單詞(注意不是字母)?將句子截斷爲一定數量的單詞

我以爲使用split(" "),但那我該如何算出單詞呢?

例如:

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

你試過了什麼?什麼沒有用?你到底有什麼困難? – Oded

+0

@已完成,許多答案使用'字符串長度'來剪切字母。這樣的話將被打破。 –

+0

@fish:這不是Oded問的! –

回答

24

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

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

太棒了,謝謝你的快速回復。 –

+3

@fish:下次請發佈您的嘗試並描述您的困難,而不是將SO用作參考網站或「請爲我做這個」網站。乾杯! –

+1

@Tomalak Geret'kal,好的,請原諒我作爲學習網絡技術的先行者。 –

0

分裂工程,正如你所描述的那樣。但是,如果使用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 
+0

'[A-Z | a-z]'將匹配'A-Z','''和'a-z'。在一個字符類中,'|'沒有特別的意義。如果你想使用不區分大小寫,只需使用'i'修飾符。無論如何,最好使用'\ w':'/ \ w +/g'。 –

+0

@Timbits,這也是一個很好的方法,但是如果'str'是中文或拉丁文字,甚至是json數據,使用'/ [A-Z | a-z] +/g'並不容易。 –

3

這是我爲Meteor應用程序編寫的「read more」函數。它接受maxWords參數,並使用jquery的text()方法去除html標籤。

希望它有幫助!

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

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

     return string ; 
} 
相關問題