作者TonyQ (沉默是金)
看板Ajax
標題Re: [問題] 請問如何判斷中文字串
時間Wed Jan 21 09:58:52 2009
※ 引述《toshii (用了十年的暱稱要改一下!)》之銘言:
: 假如某一字串中有阿拉伯數字,有英文,有中文,或特殊符號
: HTML或Javascript語法有比較快的方法算出其中有幾個是中文字嗎?
: 我能想到方法只有creat一個Array,裡面有
: 空白,0~9,a~z,A~Z,~!@$%...等等,
: 每個字元都丟進去比,都不符合就當它是中文字
: 可是好像不是很理想..特殊符號很多
: 有其他方法嗎?
以下講的是 javascript 解.
有一個不算很完善 , 但是堪用的作法是用這個 regex pattern.
[\u4e00-\u9a05]
(從你的文章看來你不是很瞭解 regex ,
非常建議你先瞭解這個字串專用的強大工具.)
你要「算出」有幾個中文字的話 ,
簡單的作法是透過 split 看有幾個區隔.
//先包裝成函式...
function chineseCount(word){
return word.split(/[\u4e00-\u9a05]/).length -1;
}
var word="test中asd文asd字as到底asd有幾asd個?";
alert(chineseCount(word));
sample page:
http://iis.tonyq.org/test/testChineseWord.html
--
What do you want to have ? / What do you have?
從書本中,你可以發現我的各種興趣。
從CD中,你可以瞭解我所喜歡的偶像明星。
或許從文字你很難以瞭解一個人,但從物品可以。
My PPolis , My past. http://ppolis.tw/user/Tony
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 221.169.78.140
※ 編輯: TonyQ 來自: 221.169.78.140 (01/21 09:59)
※ 編輯: TonyQ 來自: 221.169.78.140 (01/21 10:00)
1F:推 ilwu:如果是要算雙字元文字的話,這個沒有辦法檢核全形的應數字喔 01/21 10:44
2F:推 toshii:IE6.0好像不支援這個功能,firefox可以 01/21 10:54
3F:→ TonyQ:人家都說要「中文字」了 , 中文字跟全形字不一樣吧.XDDD 01/21 11:31
4F:→ TonyQ:咦 應該可以 我測一下... 01/21 11:32
5F:→ TonyQ:我的ie6開測試頁一切正常啊 @@ 01/21 11:32
6F:推 tomin:(筆記) 01/21 13:14
7F:推 buganini:javascript不是用unicode在裝的嗎 應該沒有雙byte的問題 01/22 21:50
8F:推 yzfr6:對電腦來說, 中文字跟全形字是一樣的 05/07 05:53
9F:→ TonyQ:全形字當然是包含中文字,但是中文字卻不包含所有全形字。 03/01 22:06