在Delphi中使用正则表达式校验中文姓名
  T2OqV3qDOzaQ 2023年11月24日 24 0

uses
system.RegularExpressions;

function IsChineseName(const aName:string; const aMaxLength:Integer=10):Boolean;
begin
//只检查基本汉字:
//  var Pattern := '^[\x{4E00}-\x{9FA5}]{2,'+aMaxLength.ToString+'}(·[\x{4E00}-\x{9FA5}]{2,'+aMaxLength.ToString+'}){0,2}$';

//检查下面所有内容:
//基本汉字       4E00-9FA5
//基本汉字补充   9FA6-9FCB
//扩展A          3400-4DB5
//扩展B          20000-2A6D6
//扩展C          2A700-2B734
//扩展D          2B740-2B81D
//兼容汉字       F900-FAD9

  var Pattern := '^[\x{4E00}-\x{9FA5}\x{9FA6}-\x{9FCB}\x{3400}-\x{4DB5}\x{20000}-\x{2A6D6}\x{2A700}-\x{2B734}\x{2B740}-\x{2B81D}\x{F900}-\x{FAD9}]{2,'+aMaxLength.ToString
              +'}(·[\x{4E00}-\x{9FA5}\x{9FA6}-\x{9FCB}\x{3400}-\x{4DB5}\x{20000}-\x{2A6D6}\x{2A700}-\x{2B734}\x{2B740}-\x{2B81D}\x{F900}-\x{FAD9}]{2,'+aMaxLength.ToString+'}){0,2}$';


  result:= TRegEx.Match(aName,Pattern).Success;

end;

 

直接上代码了!

默认允许10个字的姓名,支持中间有分隔符“·”的姓名。

参数aMaxLength可以设置允许姓名的最大长度。

要引用system.RegularExpressions单元。


Unicode 15 版本里的中文字符集范围

在Delphi中使用正则表达式校验中文姓名_中文字符

 

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月24日 0

暂无评论

推荐阅读
  wURKzOHw9Irf   2023年12月24日   24   0   0 HTMLicoicohtml
T2OqV3qDOzaQ