2013-08-09 2 views
0

나는 입력 한 모든 단어가 증가하는 큰 텍스트 상자 (블로그 편집기를 생각해 보라)에 단어 카운터를 추가하고 싶다. (즉, "Hello"를 입력하면 0부터 1까지 증가하고 이후에 "world"를 쓰면 2로 증가합니다). 웹 페이지에서이 작업을하고 싶지만 다른 옵션을 사용해도 좋습니다.즉석 단어 카운터

어떻게해야할지 모르겠다. 나는 Javascript로 이것을 할 수있는 방법이있을 것이라고 생각하지만 Javascript에 대해서는 아무 것도 모른다.

누군가이 방법을 알아내는 방향으로 나를 가리킬 수 있습니까?

+4

1 단계 : 자바 스크립트 – JJJ

+0

우를 배우십시오. fiiiiiine. – Ramy

답변

3

입력 된 문자를 확인하는 것이 좋습니다 (예 : onKeyUp 이벤트). 이전 문자가 공백이 아니고 현재 문자가 아닌 경우 증분 수입니다. 세부 사항 : 이전 문자가 문자가 아닌 경우 증가하지 않아야합니다 (이중 공백 문자)

사용자가 Backspace 또는 Delete 키를 누르면 유사한 확인이 수행됩니다. 찾을 수있는 키 코드 here

'즉시'로 계산하는 것이 어려운 것은 '비키'입력을 확인하는 것입니다. 예를 들어, 사용자는 Ctrl+Insert 조합을 사용하여 클립 보드에서 데이터를 복사하거나 텍스트 상자에서 텍스트를 선택한 다음 Del 키를 누릅니다. 정말 가치가있을 수있는 전체 가치 처리를 피할 필요가 있다면 별도로 처리해야합니다.

+0

하지만 공백 삭제는 어떻게해야합니까? – James

+0

예, 삭제도 시청해야하며 수정했습니다. 그러나 실제 문제는 '텍스트 선택'+ '델'키 또는 클립 보드에서 복사 등의 작업으로 인해 발생합니다. 그리고 이것은 또한 키를 눌러 검사 할 수 있습니다. 드래그 앤 드롭 입력이 있습니다. 거기에 손쉽게 크로스 브라우저 방식으로 처리 할 수 ​​있는지 확신 할 수 없습니다. –

0

텍스트 상자의 onkeyup 이벤트에서이 기능을 사용하십시오.

document.getElementById("inputbox").addEventListener("keyup",function(e){ 
    // Get the inputs text. 
    var inputVal = e.srcElement.value; 
    var counter = 0; 
    // Check input isn't empty. 
    if(inputVal){ 
     // Count individual letters. 
     var wordlist = inputVal.split(" "); 
     for(var i=0;i<wordlist.length;i++) 
      if(wordlist[i]) 
       counter = counter+1; 
    } 
    // Then set your counter element. 
    document.getElementById("counter").value = counter; 
}); 
+1

이 코드에는 잘못된 점이 많아 어디에서 시작해야할지 모르겠습니다. 1) 누락 된');'2) 당신이'obj'가 실제로 키 이벤트 일 때 텍스트 영역이라고 가정하고, 3)'onkeyup'이 아닌'keyup'이어야하며, 4) 존재한다면 작동하지 않을 것입니다. 줄 바꿈 또는 여러 공백, ... – JJJ

+1

잘 downvote 실제로 사건 기능에 넣기 전에 실제로 그 1-3 관련되지 않았습니다,하지만 아마도 그것은 심각한 문제가 나열된 (다른 사람 이후 작은 감시이다). # 4 .. 줄 바꿈을 어떻게 설명 할 지 모르겠다. 그러나 이것이 작은 변화라면, 나는 이것이 다른 대답보다 덜 지저분하다고 생각한다. – James