2011-09-10 6 views
8

문장을 특정 단어 수 (NB. 문자가 아님)로 잘리는 방법은 무엇입니까?문장을 특정 단어 수만큼 자릅니다.

나는 split(" ")을 사용하려고 생각했지만 단어를 어떻게 계산합니까? 예를 들어

:

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

무엇을 시도 했습니까? 무엇이 효과가 없었습니까? 정확하게 당신은 어려움을 겪고 있습니까? – Oded

+0

@Oded, 많은 답변은 문자를 자르기 위해'string length '을 사용합니다. 그래서 그 말은 깨질 것입니다. –

+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, ok, 웹 기술을 배우기위한 초보자로서 나를 용서해주십시오. –

0

분할 작업은 설명 된대로 수행합니다. 당신이 정규식을 사용하는 경우, 그러나, 당신은 전체 문자열을 분할 필요가 없습니다 :

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

여기 내 유성 앱 쓴 "더 읽기"기능입니다. 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 ; 
} 
관련 문제