将该效果整合成了一个函数,此函数接受3个参数: 第一个为textarea或其他text表单的ID; 第二个为显示输入内容的ID,可留空; 第三个为最多输入的字符,一个汉字为2个字符。 这只是一个基础效果,欢迎同学们进行优化和改进。 要获取代码请查看demo的源文件 限制表单输入长度 汉字为两个字符 function lengthLimit(elem, showElem, max){ var elem = document.getElementById(elem); var showElem = document.getElementById(showElem); var max = max || 50;// 最大限度字符,汉字按两个字符计算 function getTextLength(str){// 获取字符串的长度 一个汉字为2个字符 return str.replace(/[^\x00-\xff]/g,"xx").length; }; // 监听textarea的内容变化 if(/msie (\d+\.\d)/i.test(navigator.userAgent) == true) {// 区分IE elem.onpropertychange = textChange; }else{ elem.addEventListener("input", textChange, false); } function textChange(){// 内容变化时的处理 var text = elem.value; var count = getTextLength(text); if(count > max){// 文字超出截断 for(var i=0; i<text.length; i++){ if(getTextLength(text.substr(0, i)) >= max){ elem.value = text.substr(0, i); if(showElem) showElem.innerHTML = elem.value;// 显示输出结果 break; }; } }else{ if(showElem) showElem.innerHTML = elem.value;// 显示输出结果 }; }; textChange();// 加载时先初始化 }; 最多输入20个汉字 lengthLimit("commentText", "dsa", 40); [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]