返回
正则表达式教程:中文姓名校验
正则表达式
2024-02-28 15:56:36
一、正则解释
正则表达式:^(?:[\u4e00-\u9fa5·]{2,16})$
- ^: 匹配字符串的开头。
- (?: ... ): 非捕获组,不捕获匹配到的内容。
- [\u4e00-\u9fa5·]: 匹配汉字或“·”(中文姓名中常见的中间点)。
- {2,16}: 匹配 2 到 16 个汉字或“·”。
- $: 匹配字符串的结尾。
二、使用场景
该正则表达式可用于以下场景:
- 验证中文姓名输入的正确性。
- 从文本中提取中文姓名。
- 匹配符合中文姓名格式的数据。
三、代码示例
JavaScript
const regex = /^(?:[\u4e00-\u9fa5·]{2,16})$/;
const name = "葛二蛋";
const result = regex.test(name);
console.log(result); // true
Java
import java.util.regex.Pattern;
public class ChineseNameValidator {
public static boolean isValid(String name) {
Pattern pattern = Pattern.compile("^(?:[\u4e00-\u9fa5·]{2,16})import java.util.regex.Pattern;
public class ChineseNameValidator {
public static boolean isValid(String name) {
Pattern pattern = Pattern.compile("^(?:[\u4e00-\u9fa5·]{2,16})$");
return pattern.matcher(name).matches();
}
public static void main(String[] args) {
String name = "葛二蛋";
boolean result = isValid(name);
System.out.println(result); // true
}
}
quot;);
return pattern.matcher(name).matches();
}
public static void main(String[] args) {
String name = "葛二蛋";
boolean result = isValid(name);
System.out.println(result); // true
}
}
PHP
<?php
$regex = "/^(?:[\u4e00-\u9fa5·]{2,16})$/";
$name = "葛二蛋";
$result = preg_match($regex, $name);
if ($result) {
echo "是中文姓名";
} else {
echo "不是中文姓名";
}
Python
import re
regex = r"^(?:[\u4e00-\u9fa5·]{2,16})import re
regex = r"^(?:[\u4e00-\u9fa5·]{2,16})$"
name = "葛二蛋"
result = re.match(regex, name)
if result:
print("是中文姓名")
else:
print("不是中文姓名")
quot;
name = "葛二蛋"
result = re.match(regex, name)
if result:
print("是中文姓名")
else:
print("不是中文姓名")