function chkAll(vlu){
var reg=/^[\x00-\xff]+$/gi;
if (reg.test(vlu))
alert("是半角");
else
alert("是全角");
}

解决方案 »

  1.   

    楼上这个是判断所有的半角字符吧,好用,改成var reg=/^[\u0000-\u00ff]+$/gi;也行吧,不过,我的错在哪里,我搜索了一下,都是这么写的unicode。
      

  2.   

    /[\u4E00-\u9FA5]|[\uFE30-\uFFA0]/ig
    这个是简体中文汉字与全角字符的Unicode编码范围
      

  3.   

    上面的代码有点问题,全角的空格就不认,就是智能ABC下打的V11出来的全角。
    我怎么觉得第一个字节应该是FF,而FE下的也有全角吗?我做了个测试。
    我打了下FE31、FE32、FE33都不认。并且我以前做过一些程序
    全角字符与半角字符的差值我记得是65248我以前试过从ASC码33开始,到127加65248之后成全角都没有问题。
    而第一个字节要保证是FF,就需要65280。65280-65248为32,32以下的ASC码都不能保证加了32之后到65280,所以都不行。
      

  4.   

    SORRY上面最后一句写错了,改成
    而第一个字节要保证是FF,就需要65280。65280-65248为32,32以下的ASC码都不能保证加了65248之后到65280,所以都不行。
      

  5.   

    晕,FE31、FE32、FE33还是认的。
    |这个东西,我在ECLIPSE中快与左面的边框重合了,马虎了,没看清楚。
    但是那个空格是不认的。
    %u3000这个
      

  6.   

    to meizz:
     [\u4E00-\u9FA5]|[\uFE30-\uFFA0]能包括所有全角字符吗,要知道,不光中文是全角字符,所有用2个字节存储的都是全角,包括日文。请回答,谢谢
      

  7.   

    这些只是对应着GB2312的简体中文汉字,要想包含所有的全角字符你可以用:
    [^\x00-\xff]
      

  8.   

    to meizz:
      x是不是代表8进制?
      \x00-\xff是不是所有英文字符的unicode码范围?
      

  9.   

    \x 代表16进制\x00-\xff是不是所有英文字符的unicode码范围?
    ---------
    是的
      

  10.   

    to  ice_berg16:
    除了英文字符全是全角?\u代表几进制?谢谢
      

  11.   

    "\u代表几进制?"\u前面的\是转义字符,后面的u表示unicode\u表示后面的数字就是字符的unicode码,unicode编码一般用16进制表示