call lenstr("1234中国6780")
function lenstr(str)
dim i,char1
lenstr=0
for i=1 to len(str)
char1=mid(str,i,1)
if  asc(char1) > 0 then
lenstr=lenstr + 1
else
lenstr=lenstr + 2
end if 
next
end function

解决方案 »

  1.   

    javascript?VBSCRIPT?
    要是VBS就简单多了用lenb(str),返回的就是字节数~~要是JS,如果在页面中可以直接调用VBS的函数,虽然效率不太好~~
    <script language="vbscript">
    function lenbyte(str)
    return lenb(str)
    end function
    </script>
    <script language="javascript">
    window.alert(lenbyte("中文zhognwen"));
    </script>
      

  2.   

    String.prototype.len = function ()
    {
    return this.replace(/[^\x00-\xff]/, "**").length;
    }alert("1234中国6780".len());
      

  3.   

    function checklen1 (Str1)
    {
     var odds = 0;
     for (var i=0;i<Str1.length;i++)
     {
      if (Str1.charCodeAt(i) > 255) odds++;
     }
     return (Str1.length + odds);
    }
    //调用
    alert(checklen1("1234中国6780");
      

  4.   

    purexu(NetRube的马甲) ( ) 写的有问题,运行的是11,实际是12
    应该这样<SCRIPT LANGUAGE="JavaScript">
    <!--
    String.prototype.len=function()
    {
    return this.replace(/[^\x00-\xff]/g,"**").length;
    }alert("1234中国6780".len());//-->
    </SCRIPT>
      

  5.   

    IE的javascript使用unicode编码。unicode的字母、汉字或者标点都是两个字节,不存在一个字节的情况。要计算字符串所占字节数,实际上只要str.length*2就行。跟unicode兼容,并且英文字母占一个字节的是utf8   但编码值大于255的有可能占2个、3个、甚至四个字节,字节数实际上无法计算
      

  6.   

    String.prototype.len = function ()
    {
      return this.length + encode(this).split("%u").length-1;
    }
      

  7.   

    sorry
    ----------------
    <script language="JavaScript">
    String.prototype.len = function ()
    {
      return this.length + escape(this).split("%u").length-1;
    }
    alert("1234中国6780".len());
    </script>