php preg_match接受alnum和中文字符

时间:2014-11-27 12:40:57

标签: php html regex

我希望我的preg_match语法

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

这是我尝试过的代码,但我似乎无法实现目标

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

提前致谢。

1 个答案:

答案 0 :(得分:0)

更改您的代码,如下所示。 ^(?!\d+$)不允许包含数字的字符串。

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