ASCII值255
asc()用来返回assii码,不知道是不是有用!

解决方案 »

  1.   

    全角空格是0xa1a1
    不过你的检验方法有点问题
      

  2.   

    您说的" "应该就是两个ASCII的255
      

  3.   

    if (!preg_match("/^([\x81-\xfea-z0-9]){3,12}$/i",$reguser)) $C_errormsg.='<li>用户名请用3-12字节的中文字母或数字</li>';/^([\x81-\xfea-z0-9^ ]){3,12}$/i
      

  4.   

    正则用下面两种试试:   /^([\x81-\xfea-z0-9^ ]){3,12}$/i或者   /^([\x81-\xfea-z0-9^\0xa1a1]){3,12}$/i   
      

  5.   

    if (!preg_match("/^([\x81-\xfea-z0-9^\0xa1a1]){3,12}$/i",$reguser)) echo "$reguser".'-注册名未通过';有错误:Warning: preg_match(): No ending delimiter '/' found
      

  6.   

    trim() 不知到有用吗,让trim()以前的字符串与trim()以后的字符串比较,不同的话就屏蔽掉恶意用户!
    不知道trim是否能认出拳脚的空格!?
    $clean = trim($binary,"\0x00..\0x1F");//二进制的他也能认的哦!
    小弟在此班门弄斧了,还望各位不要见笑
      

  7.   

    Warning: preg_match(): No ending delimiter '/' found
    您把i拿走试试!
      

  8.   

    匹配gb2312汉字(不包括符号)[\xb0-\xfe][\xa1-\xfe]
    或写做[\xb0-\xfe]. 这样还可以匹配到部分gbk汉字象这样
    ^([\x81-\xfea-z0-9]){3,12}$/i
    很难想象会得到什么结果
    \x81-\xfe将匹配gbk字符的第一字节,那么第二字节用什么来匹配呢?范围是\x40-\xfe
    另外值大于128的字符可通过ALT+小键盘数字来输入,这又可能产生“半个汉字”了总之你的这个判断方式很有点问题,其实允许全角空格也并没有什么问题的