2022-02-16 04:34:45
该正则表达式 /^([u4E00-u9FA5])*$/ 用于匹配仅包含中文汉字的字符串,具体规则如下:
匹配规则解析^匹配字符串的开头,确保目标字符从起始位置开始检查。
([u4E00-u9FA5])
u4E00-u9FA5 是 Unicode 编码范围,对应基本中文汉字(覆盖大部分常用汉字,但不包括标点、数字、字母或扩展汉字)。
括号 () 表示一个捕获组(此处未实际使用捕获功能,可省略为 [u4E00-u9FA5]*)。
*表示前面的元素(即单个中文汉字)可以重复 0 次或多次,因此允许匹配:
空字符串("")
单个汉字(如 "中")
多个连续汉字(如 "中文")。
$匹配字符串的结尾,确保目标字符到末尾均为中文汉字。
✅ 匹配:""(空字符串)"中""中文测试""汉字"(仅限基本汉字范围)
❌ 不匹配:"123"(含数字)"Hello"(含字母)"中文!"(含标点)" " (空格)"A"(全角字母,超出 u4E00-u9FA5 范围)
空字符串匹配由于 * 允许 0 次重复,空字符串也会被匹配。若需至少一个汉字,可改为 +/(如 /^[u4E00-u9FA5]+$/)。
扩展汉字如需匹配所有 CJK 汉字(包括繁体、生僻字等),需扩展 Unicode 范围,例如:
/^[u4E00-u9FFFu3400-u4DBFU00020000-U0002A6DFU0002A700-U0002B73FU0002B740-U0002B81FU0002B820-U0002CEAF]+$/性能优化捕获组 () 在此处无实际作用,可直接写为 /^[u4E00-u9FA5]*$/。
该正则表达式严格匹配由 0 个或多个基本中文汉字组成的字符串,排除所有非汉字字符。根据实际需求,可调整量词(如 +)或 Unicode 范围以优化匹配规则。