【问题标题】:php preg_match accept alnum and chinese charactersphp preg_match 接受 alnum 和汉字
【发布时间】:2014-11-27 12:40:56
【问题描述】:

我希望我的 preg_match 语法

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

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

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

提前致谢。

【问题讨论】:

  • 我会使用 u 修饰符和 an unicode character class \p{Han}。现在的问题是,你接受什么样的信件? é 有效吗?

标签: php html regex


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多