[javascript]判斷中文全形字數有幾個
Jan 22nd, 2009 by appleboy 參觀者:9,217Views 機器人:900Views
推到 Twitter!
推到 Plurk!
推到 Facebook!
在 ptt bbs 的 AJAX 版討論到如何判斷計算有幾個中文字數,那 TonyQ 兄跟 toshii 兄分別提供了兩種方法,我自己測試了一下包含全形字型,如:?,。…這些都算喔,我自己想到 中華電信 emome 的簡訊系統也會有判斷數字加上英文跟中文字的算法,看了一下大致上都是相同的。
TonyQ 解法:
/*
利用 regex pattern
*/
function chineseCount(word){
return word.split(/[\u4e00-\u9a05]/).length -1;
}
var word="test中asd文asd字as到底asd有幾asd個?";
alert(chineseCount(word));
利用 regex pattern
*/
function chineseCount(word){
return word.split(/[\u4e00-\u9a05]/).length -1;
}
var word="test中asd文asd字as到底asd有幾asd個?";
alert(chineseCount(word));
toshii 解法:
function chineseCount(word){
v=0
for(cc=0;cc<word.length;cc++){
c = word.charCodeAt(cc);
if (!(c>=32&&c<=126)) v++;
}
return v
}
var word="test中asd文asd字as到底asd有幾asd個?";
alert(chineseCount(word));
v=0
for(cc=0;cc<word.length;cc++){
c = word.charCodeAt(cc);
if (!(c>=32&&c<=126)) v++;
}
return v
}
var word="test中asd文asd字as到底asd有幾asd個?";
alert(chineseCount(word));
中華電信 emome 簡訊系統解法:
<script src="http://websms1.emome.net/sms//js/big5.js" type="text/javascript"></script>
function chineseCount(word){
var v = 0;
for(var i=0;i<word.length;i++){
var c = word.charAt(i);
var c2= word.charCodeAt(i);
if(c2 > 0x7f) {
tmp1 = false;
for(var t=0;t<14832;t++) {
if(c2==big5define[t]) {
tmp1 = true;
v++;
}
}
}
}
return v;
}
var word="test中asd文asd字as到底asd有幾asd個?";
alert(chineseCount(word));
function chineseCount(word){
var v = 0;
for(var i=0;i<word.length;i++){
var c = word.charAt(i);
var c2= word.charCodeAt(i);
if(c2 > 0x7f) {
tmp1 = false;
for(var t=0;t<14832;t++) {
if(c2==big5define[t]) {
tmp1 = true;
v++;
}
}
}
}
return v;
}
var word="test中asd文asd字as到底asd有幾asd個?";
alert(chineseCount(word));

判斷中文字數…
網路上談論這個的文章很多,特別推薦「[javascript]判斷中文全形字數有幾個」這篇,介紹了三種計算方式,截錄如下:…