开始在网上找了一些匹配中文的表达式,但都是匹配所有中文字符的,包括标点符号和一些特殊中文符号。经过一番网上搜索和自行摸索,终于找到方法仅匹配中文汉字的方法。

在UTF8编码下“\x{4e00}-\x{9fa5}”,即可匹配汉字,具体代码如下:

preg_match('/^[\x{4e00}-\x{9fa5}]+$/u', $string)

下面是匹配汉字、英文字母、数字及短划线的代码:

preg_match('/^[a-zA-Z0-9\x{4e00}-\x{9fa5}\-]{1,100}$/u', $string)

长度限定于100字以内。