什麼都你正在努力實現,這將幫助你:
僅計算平假名+片假名+漢字(日語)字符數(不包括標點符號):
var x = "これは貓です、けどKittyも大丈夫。";
x.match(/[ぁ-ゖァ-ヺー一-龯々]/g).length; //Result: 12 : これは貓ですけども大丈夫
更新時間:
僅統計單詞字母:
x.match(/\w+/g).length; //Result: 1 : "Kitty"
所有在一條線(如功能):
function myCount(str) {
return str.match(/[ぁ-ゖァ-ヺー一-龯々]|\w+/g).length;
}
alert(myCount("これは貓です、けどKittyも大丈夫。")); //13
alert(myCount("これは犬です。DogとPuppyもOKですね!")); //14
這些陣列導致匹配的:
["こ", "れ", "は", "貓", "で", "す", "け", "ど", "Kitty", "も", "大", "丈", "夫"]
["こ", "れ", "は", "犬", "で", "す", "Dog", "と", "Puppy", "も", "OK", "で", "す", "ね"]
更新(JAP,KOR,CH):
function myCount(str) {
return str.match(/[ぁ-ㆌㇰ-䶵一-鿃々가-힣-豈ヲ-ン]|\w+/g).length;
}
這些將覆蓋約99%的日本,中國和韓國。您可能需要手動添加不包含的額外字符,如「〶」。
一個很好的參考是:
http://www.tamasoft.co.jp/en/general-info/unicode.html
這應該可以解決你的問題。
也許我對東方字母不夠熟悉,但在你的例子中,我計算了14個「非英文」字符,加上Kitty這個詞。那總共是15.或者,也許,並且實際上是標點符號,你也想忽略它? – 2011-01-19 01:07:10
nope - 我的計數是正確的。你可能認爲貓是兩個字符? (只有一個) – jmadsen 2011-01-20 04:51:28