js 限制表单输入长度 汉字为两个字符
将该效果整合成了一个函数,此函数接受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= 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需刷新才能执行]