php中正则匹配中文会报错

昨天在写一个表单,但是在php中使用正则匹配中文,一直报错,然后在网上查询了一下,才知道,原来php中正则中文与JavaScript不一样,

在JavaScript中这样匹配中文

 /^[\u4e00-\u9fa5\w]{3,12}$/.test();

在php中这样匹配中文

preg_match("/^[\x{4e00}-\x{9fa5}\w]{3,12}$/u", ) //这是utf-8格式的,还有个gb2312格式的,个人只喜欢utf-8,也没多看gb2312