2016-07-21 14 views
2

기본적으로 입력 필드에 단어 수를 입력해야합니다. 그래서 접근법은 선행 및 후미 공백을 줄이고 문자열 내의 나머지 공백을 1로 제한하는 것입니다. 그래서 나는 단어의 수를 얻을 수 있습니다. 아래 코드를 사용하면됩니다.카운트 단어 입력 필드

예. 입력 값 :

" Robert Neil  Cook " 

예상 출력 :

3 //"Robert Neil Cook" 

이것은 내가 뭘하려합니다.

var str = $.trim($('#inval').val()); 
var Fstr = str.split(' ').length; 
console.log(fstr); 
+0

그리고 실제 출력은 무엇을하려고? – vaso123

+0

@lolka_bolka : 감사합니다. 단어 개수를 알아볼 필요가 있습니다. – Becky

+0

예, 보았습니다 만, console.log (fstr); – vaso123

답변

1

당신은 .match(/\S+/g) 사용할 수 있습니다 그것의.

+1

정규식이 항상 좋습니다. @Becky 그들은 원시 코드 줄 수는 적다. – Jai

+0

아니예요. 변수에 할당 된 'Robert Neil Cook'을 가져와야하는 경우 어떻게해야합니까? – Becky

+1

'var str = input.value;'에 대한 답을 확인하십시오. – Jai

2

아래 시도 카운트 단어에 대한 정의 함수 아래

function countWords(s){ 
     s = s.replace(/(^\s*)|(\s*$)/gi,"");//exclude start and end white-space 
     s = s.replace(/[ ]{2,}/gi," ");//2 or more space to 1 
     s = s.replace(/\n /,"\n"); // exclude newline with a start spacing 
     return s.split(' ').length; 
    } 

    alert(countWords("How are you?")); 
2

을 사용할 수 있습니다 ..

str= " Robert Neil  Cook " ; 
 
str = $.trim(str.replace(/ +(?=)/g,'')); // replace multiple spaces to single space 
 
console.log(str) 
 
var words = str.split(' '); // count the no of words using .split() method 
 
alert(words.length);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>

+0

고마워요. .replace (/ + (? =)/g, '')'모든 공백을 제거 하시겠습니까? – Becky

+0

지금 일하다 .. 확인 –

0

이 코드를 시도

+0

고마워. 'v'가 무엇입니까? – Becky

+0

그저 lamba 식입니다. 'v'대신에 무엇이든 사용할 수 있습니다. – Karthikeyan

0

당신은 Haresh Vidja의 기능을보다 컴팩트 한이

function countWords(s){ 
    return s.trim().replace(/[ ]{2,}/gi," ").split(" ").length; 
} 

console.log(countWords("some words here") 
0

같은 모습 부착 조각을 가지고하시기 바랍니다 수 있습니다.

var str = " Robert Neil  Cook "; 
 
var arr = str.match(/\S+/g); 
 
var newstr = arr.join() 
 
console.log('length::::>', arr.length); 
 
console.log('newstr::::>', newstr);

.match(/\S+/g)가 배열로 어떤 공간없이 당신에게 말을 반환하면 length 속성을 사용할 수 있습니다 :

var str = $.trim($('#inval').val()); 
 
str1 = str.replace(/ +(?=)/g,'') 
 
var fstr = str1.split(' ').length; 
 
console.log(fstr); 
 
console.log(str1);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="text" value=" Robert Neil  Cook " id="inval">

0

아주 간단한 해결책이

var str = " Robert Neil  Cook "; 
str = str.trim(); 
var str = str.split(' ').join(''); 
var fstr = str.split(' ').length; 
console.log(fstr);