2013-08-31 3 views
0

Alright, поэтому у меня есть этот скрипт здесь, jsfiddle.net/CDLtn/2/
что подсчитывает слова и выводит значение на основе, если какой-либо из флажков были проверены это работает отлично, кроме одного, он не работает с русским входом.Входной кодирующий вопрос с JQuery слово счетчик

$(function() { 
var wordCounts = {}; 
$("input[type='text']:not(:disabled)").keyup(function() { 
var matches = this.value.match(/\b/g); 
wordCounts[this.id] = matches ? matches.length/2 : 0; 
var finalCount = 0; 
var x = 0; 
$('input:checkbox:checked').each(function() { 
    x += parseInt(this.value); 
}); 
x = (x == 0) ? 1 : x; 
$.each(wordCounts, function (k, v) { 
    finalCount += v * x; 
}); 
$('#finalcount').val(finalCount) 
}).keyup(); 
$('input:checkbox').change(function() { 
$('input[type="text"]:not(:disabled)').trigger('keyup'); 
}); 
}); 

Я нашел счетчик с открытым исходным кодом http://roshanbh.com.np/2008/10/jquery-plugin-word-counter-textarea.html и это делает принять русский ввод (здесь скрипку по ссылке выше jsfiddle.net/Joniniko/TyPSJ/)

мне нужно либо каким-то образом сделайте мой оригинальный счетчик работой с русским входом или, возможно, включите функцию флажка в ту, что была сделана Рошаном.

Вот пример русского текста просто упаковывают «Привет как дела»

(Мой исходный код страницы Кодирование было изменено на UTF-8 уже, и ив также пробовал другие из них для кириллицы ввода)

UPD: jsfiddle.net/Joniniko/CDLtn/5/ это принимает русский ввод, но он увеличивает счетчик на 0,5 вместо 1 для некоторых неизвестных мне причин.

+0

возможно дубликат [Russian вход для подсчета слов] (http://stackoverflow.com/questions/18551061/russian-input-for-word-count) – bobs12

ответ

1

Проблема заключается в том, как вы определили слова. Управляющая последовательность \b1 распознает только [a-zA-Z0-9] как «символы слова».

> "Привет как дела".match(/\b/g); 
null 

Я думаю, что вы хотите сделать вместо этого разделить ваши слова вдоль пространств:

> "Привет как дела".split(/\s+/); 
["Привет", "как", "дела"] 
+0

Да, это в случае, если мне нужна только эта конкретная строка, но мне нужно, чтобы она могла подсчитывать любое случайное русское слово, я пробовал разделить http: // jsfiddle. net/Joniniko/CDLtn/4/ Он начал считать его странно на 0,5 – Konata

+0

Вопрос уже задан и ответил здесь: http://stackoverflow.com/ques/18551061/russian-input-for-word-count/ – bobs12

+1

Я разблокировал и исправил ваш скрипт по адресу http://jsfiddle.net/slashingweapon/7JmGn/ - вам нужно было обрезать строку перед ее разбиением, а затем не разделить длина на два. – slashingweapon

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