如何控制一个input 标签 type 为text的文本框,可以输入最大长度为12个字节的一串,汉字占两个字节,非汉字占一个字节,就是说如果是全汉字,则可以输入6个汉字,如果是全字母,则可以输入12个字母,该如何去实现呢?请教大家

解决方案 »

  1.   

    给个实现提示:
    通过js脚本
    获取textbox输入内容,判断其长度(length)
    如果大于12则要求用户重新填写
      

  2.   

    var inputConent = $("#txt_content").val().length;//txt_content文本框id
    ,但是取到的中文和英文的长度是一样的.如何区分它们呢?再查查...
      

  3.   

    对于普通用户而言,一个汉字和和一个非汉字它们都是一样的,
    以"www"和“我说我”为例,
    var inputConent = $("#txt_content").val().length;得到的长度是一样的,都是3
      

  4.   


    我想将input 的maxLength 设置成12,但是能够输入6个汉字,12个英文字符,
      

  5.   


    var putLength = 0;
                var data = $("#txt_content").val(); //获取文本框输入内容
                var rgExp = "[\u4e00-\u9fa5]";      //匹配中文正则式            //遍历输入字符串
                for (var i = 0; i < data.length; i++) {
                    var obj = data[i];
                    //如果字符为中文则长度加2,非中文则加1
                    if (obj.match(rgExp)) {
                        putLength = putLength + 2;
                    }
                    else {
                        putLength = putLength + 1;
                    }
                }
                if (putLength > 12) {
                    alert("输入字符长度超过限制,中文为6个,非中文为12个");
                }
      

  6.   

    根据提示:
    以下写法也是正确的,并且效率上优于第一种写法:var putLength = 0;
                var data = $("#txt_content").val(); //获取文本框输入内容            //遍历输入字符串
                
                for (var i = 0; i < data.length; i++) {
                    if (data.charCodeAt(i) > 255) {
                        putLength += 2;
                    }
                    else {
                        putLength++;
                    }
                }            if (putLength > 12) {
                    alert("输入字符长度超过限制,中文为6个,非中文为12个");
                }