中文应该是两个字节,而英文字母占一个字节。   
  如何准确在客户端判断到底输入了多少个字节.
例如:TXTAREA    汉字要输入300    英文600

解决方案 »

  1.   

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
    <html xmlns="http://www.w3.org/1999/xhtml" >  
    <head>  
        <title>判断输入的字数</title>  
        <mce:script type="text/javascript"><!--   
        function Checkval()   
        {   
          var s=document.getElementById("Text1").value;   
          var n=0;   
          for(var i=0;i<s.length;i++)   
          {   
          //charCodeAt()可以返回指定位置的unicode编码,这个返回值是0-65535之间的整数   
            if(s.charCodeAt(i)<128)   
            {   
             n++;    
            }   
            else   
            {   
             n+=2;   
            }   
          }   
          alert(n);   
        }   
           
    // --></mce:script>  
    </head>  
    <body>  
        <input id="Text1" type="text" onblur="Checkval()" />  
    </body>  
    </html>  本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/ws_hgo/archive/2009/07/31/4398515.aspx
      

  2.   

    http://blog.csdn.net/ws_hgo/archive/2009/07/31/4398515.aspx
      

  3.   

    算charcode是比较常见的做法,不过这个没什么用,一般都中英文统一处理了,没必要弄的那么细。
    之前设计非要让我这么做,最后客户说删了吧。。
      

  4.   


    String.prototype.len = function() {
    return this.replace(/[^\x00-\xff]/g, 'xx').length;
    };alert("文字abc".len());
      

  5.   

    <script language=javascript>function fucCheckLength(strTemp)
    {
        var i,sum;
        sum=0;
        for(i=0;i<strTemp.length;i++){
            if ((strTemp.charCodeAt(i)>=0) && (strTemp.charCodeAt(i)<=255)){
                sum=sum+1;
            }else{
                sum=sum+2;
            }
        }
        return sum;
    }
    function test(val){
    var len=fucCheckLength(val);
    alert(len)
    }
    </script>
      

  6.   

    来个完整的吧
    HTML code<HTML><HEAD>
    <TITLE>test</TITLE>
    <meta http-equiv=content-type content="text/html; charset=UTF-8">
    <script language=javascript> 
    function fucCheckLength(strTemp)
    {
        var i,sum;
        sum=0;
        for(i=0;i<strTemp.length;i++){
            if ((strTemp.charCodeAt(i)>=0) && (strTemp.charCodeAt(i)<=255)){
                sum=sum+1;
            }else{
                sum=sum+2;
            }
        }
        return sum;
    }
    function test(){
    var testInput=document.getElementById("test").value;
    var len=fucCheckLength(testInput);
    alert("长度是"+len);
    }
    </script>
    </head>
    <body>
    <div><input type=text  id="test"  /><input type=button value="测试" onclick=test()></div>
    </body>
    </html>
      

  7.   

    String.prototype.len = function() {
        return this.replace(/[^\x00-\xff]/g, 'xx').length;
    };
    这个代码挺好的, , 准确判断输入的汉字或英文是几个字节。
    我想把txt长度设为600字节。
    在TXT里光输入汉字的话 判断汉字 > 300 超过限制。
    在TXT里光输入英文的话 判断英文 > 600 超过限制。在TXT里汉英混合输入的话 我得怎么判断???
      

  8.   

    function test(){ 
    var testInput=document.getElementById("test").value; 
    var len=fucCheckLength(testInput); 
    if(len>600) alert("out of range");
    } 楼上方法同理
    function test(){ 
    var testInput=document.getElementById("test").value; 
    if(testInput.len>600) alert("out of range");

      

  9.   

    那么直接判断的话不行 。 。
    上面的是只能取出输入汉英的长度。
    直接判断600的话我要求的题不符合。
    我说的是
    String.prototype.len = function() { 
        return this.replace(/[^\x00-\xff]/g, 'xx').length; 
    }; 
    这个代码准确取出输入汉英的长度。
    我想实现的是:
    txt长度设为600字节。 
    在TXT里光输入汉字的话 判断汉字 > 300 超过限制。 
    在TXT里光输入英文的话 判断英文 > 600 超过限制。 在TXT里汉英混合输入的话 我得怎么判断??? 
      

  10.   

    ....就是这样用啊<HTML><HEAD>
    <TITLE>test</TITLE>
    <meta http-equiv=content-type content="text/html; charset=UTF-8">
    <script language=javascript> function test(){
    var testInput=document.getElementById("test").value;
    var len=testInput.len()
    if(len>600)
    alert("超过限制");
    }String.prototype.len = function() { 
        return this.replace(/[^\x00-\xff]/g, 'xx').length; 
    }; 
    </script>
    </head>
    <body>
    <div><input type=text  id="test"  /><input type=button value="测试" onclick=test()></div>
    </body>
    </html>
    自己去试 ,汉字超过300会提示,英文超过600会提示,混合超过600个字节一样会提示
      

  11.   

    LZ可以把(len>600) 该成if(len>10),既:汉字5个,英文10个的限制 ,然后试
      

  12.   

    我设置了10字节 
    String.prototype.len = function() { 
        return this.replace(/[^\x00-\xff]/g, 'xx').length; 

    用上面的代码来判断输入的是多少字节。 
    然后判断并提示错误信息。 
    我想实现的是我在TXTBOX里输入了“中国中国中国” 
    这样的话超出了10字节,判断 > 10 提示错误信息。 
    然后看一看TXTBOX,“中国中国中国”仍然还在。 
    超出了字节我想把超出的字节去掉只显示“中国中国中”然后光标到“中”后面一闪一闪???