如何判断一个字符是英文、中文还是特殊字符。(100分)

  • 主题发起人 HuangSkar
  • 开始时间
H

HuangSkar

Unregistered / Unconfirmed
GUEST, unregistred user!
我在项目中遇到一个问题,需要对录入的数据进行校验,比如判断一个字符是英文
字母、中文还是特殊字符(比如~!@#$%^&*()_+等字符),我用字符的ASCII码
来判断,但是当输入法是全角时输入英文字母或是特殊字符时,通过ASCII码判断出来
的是中文字符,请问在这种情况下怎样判断出是英文字符和特殊字符,希望各位大虾指点
迷津。
 
ord()<128 是字符,>128是汉字
 
判断一下这个字是汉字还是单字节字符:
if word(sourcestr)<176 then //是字符
{英文字母还是特殊字符可用ASCII码判断}
...
else //是汉字
...
 
在全角状态下输入英文字母或者特殊符号,ASC码值都大于127,如何判断它只是一个
英文字符或者特殊符号而不是汉字呢?
好像不同的输入法输出的字符还不同。
 
function isChinese(c:char):boolean;
begin
if c in [#40..#255] then
Result := true
else
Result := false;
end;
 
Delphi有ByteType函数是专门判断单字节字符和双字节字符的函数。
 
哇,老千重出江湖拉!!
 
这个就可以了:
ord()<128 是字符,>128是汉字
 
我试过了,thinknet的没问题是对的!!呵呵
 
还是 碧血剑 的方法最好
 
多谢了。
 
谢谢各位大虾,这个问题我基本上解决了,基本上Thinkneg的答案比较接近。
大家吧分分了吧!
 
多人接受答案了。
 
顶部