作者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