2014-03-27 11 views
0

3 문자 미만의 단어가 얼마나 많은지 알려주는 함수를 만들려고합니다. 예를 들어, "내일 비가 올 것입니다. 따라서 우산을 가져 오십시오."이 문장에서 은 "be"와 "so"만 같으므로 2를 입력하십시오. 어떤 도움을 주시면 감사하겠습니다. Google 자바 스크립트 스프레드 시트

function (stri){ 

return ("less than 3 ").length; 

} 

는 (나는 그것의 가능한 경우) 정규 표현식 (W \를 사용하는 것을 목표로하고 있습니다.)

+0

나의 이해는 부족합니다. 스크립트 관리자를 클릭하고 새 시트를 만들려면이 함수를 만들고 싶습니다. 이 함수의 이름을 Letter2로 지정하고 싶습니다. 따라서 함수 이름을 만드는 것으로 시작합니다. 함수 letter2 (단어) {return ("3보다 작음"). 길이; 하지만 자바 스크립트에서 이것을 만들 때 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을 사용하여 하나 또는 두 개의 문자 인 문자열의 모든 단어를 일치시킵니다. 그런 다음 해당 문자열에 match 함수를 사용하여 단어 배열을 제공합니다. 마지막으로 count의 length 속성을 가져옵니다.

사용 예제 : 자바 스크립트의

//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

나는 이것을 시도했으나 효과가 없거나 오해 할 수도있다. vars의 맨 위에 함수 이름을 추가해야합니까? \ w는 영숫자 문자를 의미합니까? – user3466687

+0

바로, 함수를 정의한 다음 호출하면됩니다. –

+0

설명해 주셔서 감사합니다. 예, 저는 정규 표현식을 사용하려고했습니다. 당신의 명중은 아주 도움이된다. google 스프레드 시트에서 스크립트 관리자를 연 다음 함수 findSmallWords (var findSmallWords = function (stringToTest) { var smallWords =/\ w {1,2}/g)를 추가했는지 확인하고 싶습니다. return stringToTest.match (smallWords) .length; }이 스프레드 시트를 작성한 후에는 스프레드 시트로 가서 type = findSmallWords – user3466687

관련 문제