2014-03-27 218 views
0

我想讓功能,告訴我有多少個單詞包含少於3個字母。 例如,「明天會下雨,所以帶上你的雨傘」 在這句話中,只有「be」和「so」等於兩個。任何幫助,將不勝感激。谷歌javascript電子表格

function (stri){ 

return ("less than 3 ").length; 

} 

(我的目標,如果它可以使用\ W(正則表達式)。)

+0

我的Java腳本的理解是低的。我想使這個功能,所以我點擊腳本管理器,並創建一個新的工作表。我想命名這個函數Letter2。因此,我開始製作一個函數名稱。函數letter2(words){return(「less than 3」)。length;但是當我在java腳本上創建它時,它說dimiss。 – user3466687

回答

1

如果使用lodash你可以做以下...

<script src="http://cdnjs.cloudflare.com/ajax/libs/lodash.js/2.4.1/lodash.min.js"></script> 
<script> 

    // create a function to call with your string and the min size of the word 
    function countSmalls(s,min) { 

     // split by non word characters 
     return _.where(s.split(/\W/),function(v,i,l){ 

     // return true or false to satisfy the callback, all *truthy* values are added to the return value of _.where 
     return v && v.length < min; 
     }).length; 
    } 

    // create some text 
    var lorem = "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet."; 

    // call your function 
    countSmalls(lorem,3); // 24 (words that are < 3 characters) 

</script> 
+0

什麼是lodash? – user3466687

+0

這是一個實用程序庫,可以幫助您操作集合和更多...檢查它:) http://lodash.com/ – Shanimal

+0

非常感謝。我必須看着他們。它似乎非常有幫助。有沒有簡單的方法來創建函數? – user3466687

1
function countSmallWords(stringToTest){ 
    var smallWords = /\b\w{1,2}\b/g; 
    return stringToTest.match(smallWords).length; 
} 

說明:它使用帶有全局標誌的正則表達式\b\w{1,2}\b來匹配字符串中一個或兩個字符的所有單詞。然後它使用該字符串上的匹配函數給出一個單詞數組。最後,獲取計數的長度屬性。

用法示例:

//Example 1: 
alert(countSmallWords("Tomorrow will be rain. So bring your umbrellas")); 
//alerts 2 

//Example 2: 
var smallWordCount = countSmallWords("Hello. What a nice day it is."); 
//smallWordCount == 3 

//Example 3: 
var smallWordCount = countSmallWords("Are there any small words in this sentence?"); 
console.log(smallWordCount); 
//Press F12 and you will see 1 in the browser console. 
+0

我試過這個,但沒有成功,或者我可能會誤解。是否有必要在變量的頂部添加函數名稱? \ w表示任何字母數字字符正確? – user3466687

+0

對,只需定義你的功能,然後調用它。 –

+0

謝謝你的解釋。是的,我打算使用正則表達式。你的命中是非常有幫助的。我想確認我打開了谷歌電子表格中的腳本管理器,然後添加函數findSmallWords(var findSmallWords = function(stringToTest){var smallWords =/\ w {1,2}/g; return stringToTest.match(smallWords ).length; }一旦我創建了這個,我繼續在電子表格上,然後鍵入= findSmallWords – user3466687