问答详情
源自:3-8 正则匹配常用案例

验证中文的正则表达式 报错

if (!preg_match('/^[\u4e00-\u9fa5\w\.]+@\w+(\.\w+){1,2}$/i', $user['email'])) {
   die('邮箱不合法');
}

\u4e00-\u9fa5表示中文utf-8编码,用正则表达式检测工具,测试语法没问题.

Warning: preg_match(): Compilation failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 3 in C:\wamp\www\learning php\test2.php on line 95

报错\u写法不支持.还有其他表示中文的写法吗

提问者:weplt 2016-01-17 00:13

个回答

  • weplt
    2016-01-17 00:29:18

    还是自己靠的住...说明一下:

    \u需要转义 修改后-->\\\u

    unicode编码需要在正则表达式结尾加上u 完整版在下面,修改地方加了下划线

    if (!preg_match('/^[\\\u4e00-\\\u9fa5\w\.]+@\w+(\.\w+){1,2}$/iu', $user['email'])) {
       die('邮箱不合法');
    }