PHP preg_match接受 Alnum 和中文字符


php preg_match accept alnum and chinese characters

我希望我的preg_match语法

  • 接受字母和数字(不允许只使用数字)
  • 禁止使用空格
  • 不允许特殊字符(例如 !@#$%^&.,)
  • 最少 3 个字符到 12 个字符。
  • 允许使用中文字符(可以是单独的,也可以是字母或数字,或两者兼而有之。

这是我尝试的代码,但我似乎没有达到我的目标

if(preg_match('/^[a-zA-Z0-9'x{4e00}-'x{9fa5}]{3,12}+$/', $nickname)) {
//accepted
}
else {
//denied
}

提前谢谢。

像下面这样更改代码。 ^(?!'d+$)不允许只包含数字的字符串。

if(preg_match('~^(?!'d+$)[a-zA-Z0-9'x{4e00}-'x{9fa5}]{3,12}+$~u', $nickname)) {
//accepted
}
else {
//denied
}