Delphi 7的版本:
function TForm1.IsChineseString(s: WideString): Boolean; var i,j:Integer; begin //输入必须是纯汉字串 result:=True; for i:=1 to Length(s) do begin j:=Ord(s[i]); if (j<19968) or (j>40869) then begin result:=False; Break; end; end; end; Delphi Berlin 版本: function TForm1.IsChineseString(s: String): Boolean; var c:Char; begin Result:=True; for c in s do begin if (Ord(c)<19968) or (Ord(c)>40869) then begin result:=False; Break; end; end; end; Delphi 7正则表达式的版本: function TForm1.IsChinese(s:string): Boolean; var reg: TPerlRegEx; begin reg := TPerlRegEx.Create; try reg.Subject := s; reg.RegEx :='^[\W]+$' ; result := reg.Match; finally reg.Free; end; end; RegEx为这些内容不好用,运行出错,没整明白。但用\W不严格,有的全角字符还可以输入. //'[^\x00-\xff]+';//'[\u4e00-\u9fa5]+';//'[\x{4E00}-\x{9FA5}]+'; Delphi Berlin 版本: uses System.RegularExpressionscore; function TForm76.IsChinese(s:string): Boolean; var reg: TPerlRegEx; begin reg := TPerlRegEx.Create; try reg.Subject := s; reg.RegEx :='^[\x{4E00}-\x{9FA5}]+$'; result := reg.Match; finally reg.Free; end; end; 这是一个理想的版本,还是新版的Delphi强! QDAC版本: 在QString单元中,IsHumanName(S,[nctChinese],0,MaxInt)来判断指定的字符串中是否只包含中文字符。 里面的IsChineseName,IsChineseAddr都是调用的他。 还不知QDAC是什么,可以去看看:http://blog.qdac.cc/.