PHP建站技术文档

PHP验证中文姓名的正则表达式是什么
  • 作者:合肥PHP建站
  • 发表时间:2023-09-15 09:56:35
  • 来源:合肥PHP建站

在PHP中,验证中文姓名的正则表达式可以使用以下模式:


$pattern = '/^[\x{4e00}-\x{9fa5}]{1,2}\s[\x{4e00}-\x{9fa5}]{1,2}$/u';


$name = '张三';


if (preg_match($pattern, $name)) {

    echo '姓名格式正确';

} else {

    echo '姓名格式不正确';

}

上面的正则表达式使用了Unicode模式来匹配中文字符,[\x{4e00}-\x{9fa5}] 表示匹配 Unicode 范围从 4E00 到 9FA5 的中文字符。^ 表示匹配字符串的开头,[\x{4e00}-\x{9fa5}]{1,2} 表示匹配一个或两个中文字符作为姓名,\s 表示匹配一个空格,后面的 [\x{4e00}-\x{9fa5}]{1,2} 表示匹配一个或两个中文字符作为名字。$ 表示匹配字符串的结尾。u 修饰符用于启用 Unicode 模式。


这个正则表达式可以验证包含一个姓和一个名字的中文姓名格式是否正确。如果要验证包含多个名字的情况,可以增加 \s[\x{4e00}-\x{9fa5}]{1,2} 的部分,如 ^[\x{4e00}-\x{9fa5}]{1,2}(\s[\x{4e00}-\x{9fa5}]{1,2})*$。