试试,没测试
if (preg_match_all("/[\xa1-\xff]+/",$username))
   echo "不能有中文";

解决方案 »

  1.   

    $str = "中文"; 
    if (preg_match("/^[".chr(0xa1)."-".chr(0xff)."]+$/", $str) { 
    echo "这是一个纯中文字符串"; 
    } else { 
    echo "这不是一个纯中文字串"; 

    只匹配纯中文
      

  2.   

    if (!preg_match_("/^[a-zA-Z_0-9]+$/",$username))
       echo "不和标准";
      

  3.   

    function checkchar(el)
    {
       //如果含有非字母数字 返回 true
       var text1="abcdefghijklmnopqrstuvwxyz1234567890 ABCDEFGHIJKLMNOPQRSTUVWXYZ,()!@$%&#*~.;_-=+-{}[]?'";
       for(i=0;i<=el.length-1;i++)
       {
          char1=el.charAt(i);
          index=text1.indexOf(char1);
          if(index==-1){
           return true;//非法
          }  
         //没有
       }
       return false;
    }
      

  4.   

    if(!eregi("^[a-z_0-9]{3,16}",$account))
    {
        echo "账号只能包括字母数字和下划线!";
        exit;
    }
      

  5.   

    在input表单中禁止粘贴,禁止输入法的切换就可以了
    <INPUT onpaste="return false;" style="IME-MODE: disabled; WIDTH: 200px" value="用户ID请勿使用中文!" name=input size="20" maxlength="16">
      

  6.   

    用正则,
    ereg(^[a-zA-Z0-9]+$,$_POST['username'])
      

  7.   

    xylegend(晓逸) ( ) 
    不行啊。如果是万能五笔的话,还是能往里面打字呀。
      

  8.   

    JS限制的都是不可靠的,用正则匹配。eregi就可以了。