菜鸟日记之中英文长度控制

在表单的input里,通过maxlength来控制长度,对中文是没有效果的。只能从后台来判断,代码如下:

java 代码
  1. String fgmc = rule.getFgmc();   
  2. if(fgmc!= null && !fgmc.equals("")){   
  3.         byte[] bytes = fgmc.getBytes();   
  4.         if (bytes != null && bytes.length>100){   
  5.         returnCode = "法规名称长度不能超过100字符(一个汉字占两个字符)!";   
  6.                 return returnCode;  

 

至于textarea,控制他的长度的代码为:

js 代码
  1. <script>
    function checklen(obj){
    var lenE = obj.value.length;
    var lenC = 0;
    var CJK = obj.value.match(/[\u4E00-\u9FA5\uF900-\uFA2D]/g);
    if (CJK != null) lenC += CJK.length;
    tno.innerText = obj.maxlength - lenC - lenE ;
    if (tno.innerText < 0) {
    var tmp = 0
    var cut = obj.value.substring(0, obj.maxlength);
    for (var i=0; i<cut.length; i++){<br=""> tmp += /[\u4E00-\u9FA5\uF900-\uFA2D]/.test(cut.charAt(i)) ? 2 : 1;
    if (tmp > obj.maxlength) break;
    }
    obj.value = cut.substring(0, i);
    }
    }
    </script>

HTML部分代码

js 代码
  1. <(body) onload="tno.innerText = s1.maxlength;">   
  2. <(textarea) name="s1" rows="5" cols="50" maxlength="1000" onpropertychange="checklen(this)"></textarea>   
  3. 剩余<span id="tno"></span>个字符  

你可能感兴趣的:(html)