2013-05-17 6 views
0

Можно ли использовать эту функцию для подсчета слов более точно и наиболее важно, считать слово внутри редактируемого div?счетчик слов более точно

$(document).ready(function() { 

$('.word_count').each(function() { 
    var input = '#' + this.id; 
    var count = input + '_count'; 
    $(count).show(); 
    word_count(input, count); 
    $(this).keyup(function() { word_count(input, count) }); 
}); 

}); 

function word_count(field, count) { 

var number = 0; 
var matches = $(field).val().match(/\b/g); 
if(matches) { 
    number = matches.length/2; 
} 
$(count).text(number + ' word' + (number != 1 ? 's' : '') + ' aprox'); 

} 
+0

Рабочий код лучше подходит для http://codereview.stackexchange.com –

+0

Как именно эта функция не точна? Приведем пример, где он возвращает неточное количество. Причина, по которой это не работает в div, вероятно, связана с тем, что содержимое div извлекается через .html() или .text(), а не .val(). – amik

+0

Как насчет регулярного выражения? .textContent.split (/ \ w + /). length –

ответ

0

Попробуйте это:

var numwords = $(field).val().match(/\S+/g).length;

+0

как я могу написать его, если я хочу считать его как 4 слова всякий раз, когда появится скобка? – Gaurav

+0

поэтому countThis («пример (предложение)»); должен вернуть 6? –

0

С моей личной библиотеке:

var s = "Is it possible to make this function to count words more accurately and most important, count the word inside a editable div?"; 
s = s.replace(/(^\s*)|(\s*$)/gi, ""); 
s = s.replace(/[ ]{2,}/gi, " "); 
s = s.replace(/\n /, "\n"); 
var countresult = s.split(' ').length; 
alert("The string:\""+s+"\" and the word count is "+countresult+"."); 

см http://jsfiddle.net/farondomenic/XAvh6/ для работы примера.

+0

Любая удача в решении проблемы? Мне любопытно, какой метод вы выбрали, который сработал. – Faron

0

Я использовал бы метод .split(). Возьмите элемент и создайте массив. Очень прямолинейно и легко кодировать. Я не думаю, что вам нужно больше примеров, чем это, чтобы узнать, нравится вам идея или нет. Любые вопросы, я буду рядом ... W3 Schools Example

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