delphi 中文姓名 合法性检查  
官方Delphi 学习QQ群: 682628230(三千人)
频道

delphi 中文姓名 合法性检查


function checkCName(value: string): boolean;
var
  i, k: integer;
  cstr, estr: string;
begin
  result := false;
  k := pos(' ', value);

  if k > 0 then // 有空格
  begin
    cstr := copy(value, 1, k-1);
    estr := copy(value, k+1, 255);

    // 汉字部分不全是汉字
    if 2*length(widestring(cstr)) <> length(ansistring(cstr)) then
      exit;

    for i := 1 to length(estr) do // 英文部分不全是英文
    begin
      if not (estr[i] in ['a'..'z', 'A'..'Z']) then
        exit;
    end;
  end else // 没有空格
  begin
    if (2*length(widestring(value)) <> length(ansistring(value))) // 不全是汉字
      and (length(widestring(value)) <> length(ansistring(value))) then // 不全是英文
    begin
      exit;
    end;
  end;

  result := true;
end;

推荐分享
图文皆来源于网络,内容仅做公益性分享,版权归原作者所有,如有侵权请告知删除!
 

Copyright © 2014 DelphiW.com 开发 源码 文档 技巧 All Rights Reserved
晋ICP备14006235号-8 晋公网安备 14108102000087号

执行时间: 0.043877124786377 seconds