2014-03-27 219 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