如何判断edit中输入的内容有双字节字(中日韩等)。请给出参考源码。 ( 积分: 50 )

  • 主题发起人 主题发起人 leway
  • 开始时间 开始时间
function IsChineseChar(var s:String):boolean;
var
i:Integer;
begin
Result:=false;//默认为英文或数字
for i:= 1 to Length(S) do
begin
if Ord(S)>=160 then
Result:=true;
break;
// 汉字符ASCII大于等于160
end;
end;
 
能保证大于160的都是双字节?
 
for i:=1 to Length(edit.text) do
if edit.text > #160 then
begin
ShowMessage('有双字节字');
break;
end;
 
ByteType函数啊,Delphi自带的。
 
function CCIncluded(s : string): boolean;
var
i: integer;
begin
result:=false;
for i:=1 to Length(s) do
begin
if (ByteType(s, i) = mbLeadByte) or (ByteType(s, i) = mbTrailByte) then
begin
result:=true;
exit;
end;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
if CCIncluded(Edit1.Text) then
ShowMessage('含有中文');
end;
 
if Length(Edit1.Text) <> Length(WideString(Edit1.Text) then
ShowMessage('有双字节');
 
用WideString和String来装载,比较Length()?
 
多人接受答案了。
 
后退
顶部