2013-08-31 55 views
0

好的編碼的問題,所以我這裏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/鏈路的小提琴)

我需要或者不知何故使我的原始計數器與俄羅斯輸入一起工作,或者可以將複選框功能合併到由Roshan創建的那個。

這裏是俄文本的只是櫃面「Приветкакдела」爲例

(我的源網頁的編碼已更改爲UTF-8已經和香港專業教育學院還試圖西里爾輸入其他的)

UPD:jsfiddle.net/Joniniko/CDLtn/5/這接受俄羅斯輸入,但它增加了計數器0.5而不是1對於我未知的一些原因

+0

[俄羅斯輸入的字數(可能重複http://stackoverflow.com/questions/18551061/russian-input-for-word-count) – bobs12

回答

1

問題是你定義「單詞」的方式。 \b正則表達式轉義序列僅將[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 tions/18551061/russian-input-for-word-count/ – bobs12

+1

我在http://jsfiddle.net/slashingweapon/7JmGn/分叉並修復了你的腳本 - 你需要在分割它之前修剪字符串,然後不要分割長度減兩。 – slashingweapon