2014-07-09 3 views
-2

양식에 입력란과 텍스트 입력란이 있습니다. 이 두 필드 각각에 대해 단어 수, 점 수 및 7 자 이상의 단어 수를 계산하고 싶습니다.jQuery : 문자열에 X 문자 이상이 포함 된 단어 수를 계산하십시오.

이미 두 개의 첫 번째 숫자 (단어 수와 점 수)에 대한 코드가 있지만 각 입력란에서 7 자 이상의 단어 수를 계산하는 방법을 알 수 없습니다.

누구나 나를 도와 줄 수 있습니까?

var titleElem = $('#title'); 
var numberOfWords = countWords(titleElem); 
var numberOfDots = countDots(titleElem); 

function countWords(input) { 
    var a, z, inputValue, total; 
    inputValue = input.val(); 
    total = 0; 
    a = inputValue.replace(/\s/g, ' '); 
    a = a.split(' '); 
    for (z = 0; z < a.length; z++) { if (a[z].length > 0) total++; } 
    return total; 
} 

function countDots(input) { 
    var inputVal; 
    inputVal = input.val(); 

    return inputVal.split(".").length - 1; 
} 
+2

코드를 보여주고 [또한 바이올린 링크도 제공합니다.] (http://fiddle.jshell.net/) –

+0

가지고있는 코드를 보여줄 수 있습니까? 이미 단어를 세는 경우에는 추가하려는 단어를 간단하게 입력해야합니다. – Archer

+0

오, 죄송합니다. folowing 코드가 있습니다 : http://fiddle.jshell.net/4zmuR/ 코드는 입력 필드의 모든 키 이벤트에서 실행됩니다. 위의 링크에는 단어와 점을 계산하는 두 가지 기능이 포함되어 있으며 예상대로 작동합니다. –

답변

2

그것은 당신이 단어로 분류 무엇을 따라 달라집니다

여기에 내 현재 코드 (fiddle)입니다. 하이픈/아포스트로피가 포함되어 있습니까? 당신은 이것에 대한 간단한 정규식을 사용할 수

var wordCount = $("input").val().match(/[\w0-9]{8,}/gi).length 

{8,}

은 단지 길이 7 자보다 더 많은 단어를 캡처 보장합니다.

+0

고마워, 나는 그것을 밖으로 시도 할 것이다. 실제로 단어를 분류하는 방법에 대해 좋은 점이 있습니다. 나는 문자와 숫자로만 단어를 분류했다. 가능하면 하이픈, 대괄호, 아포스트로피 등의 문자는 개수에 포함하면 안됩니다. –

+0

답변이 업데이트되었습니다. 이것은 단어 문자 ('\ w')와 숫자'0-9'만을 허용해야합니다. "특수"문자는 포함되지 않습니다. – CodingIntrigue

+0

위대한, 그것은 일했다! 내가 말하는 단어가 일치하지 않는 경우 오류가 발생합니다 : "null의 속성 'length'을 읽을 수 없으므로 변수 안에 일치 항목을 넣은 다음 나중에 값이있는 경우 그 값을 확인하고 길이를 사용하면 오류가 발생합니다. 고마워요 :) –

관련 문제