好像能判断每一个字符的ASIC码了
如果属于字母内的值就算一
如果不是就算二
不知道行不行

解决方案 »

  1.   

    if (str<="~")  //判断是否是双字节字 
       Num=1;
    else
       Num=2;
      

  2.   

    这是一个检查长度的函数:
    // *********************************************************************************** //
    // function CheckStrLen(value,maxLen)
    // --------------
    // &sup1;&brvbar;&Auml;&Uuml;&pound;&ordm;&frac14;ì&sup2;é&sup3;¤&para;&Egrave;
    // &acute;&laquo;&Egrave;&euml;&sup2;&Icirc;&Ecirc;&yacute;&pound;&ordm;
    //               value&pound;&ordm;  &Ograve;&ordf;&frac12;&oslash;&ETH;&ETH;&frac14;ì&sup2;é&micro;&Auml;&Ecirc;&yacute;×&Ouml;
    // maxLen&pound;&ordm;  &sup3;¤&para;&Egrave;
    // &acute;&laquo;&sup3;&ouml;&frac12;á&sup1;&ucirc;&pound;&ordm;    ·&micro;&raquo;&Oslash;&Ecirc;&Ccedil;·&ntilde;&ordm;&Iuml;·¨  false: &sup3;&not;&sup3;¤  true&pound;&ordm;&ordm;&Iuml;·¨
    // *********************************************************************************** //
    function CheckStrLen(value,maxLen){  
    var str,Num = 0;
    for (var i=0;i<value.length;i++){
    str = value.substring(i,i+1);
    if (str<="~")  //&para;&Ocirc;&Euml;&laquo;×&Ouml;&frac12;&Uacute;×&Ouml;&Igrave;&Oslash;&Ecirc;&acirc;&acute;&brvbar;&Agrave;í
    Num+=1;
    else
    Num+=2; if (Num>maxLen)
      return false;
    }
    return true;
    }
      

  3.   

    //怎么都是乱码??
    // 获取长度
    function CheckStrLen(value){  
    var str,Num = 0;
    for (var i=0;i<value.length;i++){
    str = value.substring(i,i+1);
    if (str<="~")  //判断是否双字节
                            Num+=1;
    else
    Num+=2; }
    return Num;
    }