2013-06-03 3 views
2

Я хотел бы проверить, сколько слов в строкеПроверьте строку, содержащую количество слов в javascript

например.

asdsd sdsds sdds 

3 слова

Проблема заключается в том, если есть больше чем один пробел между двумя подстроки, результат не является правильным

вот моя программа

function trim(s) { 
    return s.replace(/^\s*|\s*$/g,"") 
} 

var str = trim(x[0].value); 
var parts = str .split(" "); 
alert (parts.length); 

Как решить проблему? спасибо за помощь

ответ

1

Пожалуйста, используйте этот один его уже используемые мной в моем проекте:

function countWords(){ 
    s = document.getElementById("inputString").value; 
    s = s.replace(/(^\s*)|(\s*$)/gi,""); 
    s = s.replace(/[ ]{2,}/gi," "); 
    s = s.replace(/\n /,"\n"); 
    document.getElementById("wordcount").value = s.split(' ').length; 
} 
1

Легко узнать, используя метод split, но вам нужно разобраться, есть ли какие-либо специальные символы. Если у вас нет специальных символов в вашей строке, то последней строки достаточно, чтобы работать.

s = document.getElementById("inputString").value; 
s = s.replace(/(^\s*)|(\s*$)/gi,""); 
s = s.replace(/[ ]{2,}/gi," "); 
s = s.replace(/\n /,"\n"); 
document.getElementById("wordcount").value = s.split(' ').length; 
2
var parts = str .split(" "); 
parts = parts.filter(function(elem, pos, self) { 
    return elem !== ""; 
}); 

Пожалуйста, попробуйте это. Убедитесь, что вы используете последний браузер для использования этого кода.

0

попробовать:

function trim(s) { 
    return s.replace(/^\s*|\s*$/g,"") 
} 
var regex = /\s+/gi; 
var value = "this ss "; 
var wordCount = value.trim().replace(regex, ' ').split(' ').length; 
console.log(wordCount); 
0

Еще короче шаблон, попробовать что-то вроде этого:

(\S+) 

и количество матчей вернуться на регулярных выражений будет ваш желаемый результат.

Смежные вопросы