什么都你正在努力实现,这将帮助你:
仅计算平假名+片假名+汉字(日语)字符数(不包括标点符号):
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