js限制textarea中每行输入字符串长度的方法

发布时间:2020-11-05编辑:脚本学堂
在text中,可以直接用maxlength属性来控制输入的字符会长度,但textarea没有这个属性。

在text中,可以直接用maxlength属性来控制输入的字符会长度,但textarea没有这个属性。

asp.net的服务端textbox这个属性也不起作用,所以只有用js脚本来控制了。
js代码:
 

复制代码 代码如下:

<script language="javascript">
function textCounter(field, maxlimit, lines) {//参数说明:field是textarea对象,maxlimit是最大允许长度,lines是行数
var arr = field.value.split("n");//首先我们要为验证行数,通过分行符“n”
var perLine = "";
var value = "";
if (arr.length < lines) lines = arr.length;//判断行数是否超出了我们规定的行数,如果超了就把行数改为超出的,因为我们要算字符串长度
for (loop = 0; loop < lines; loop++) {//循环测数字符串总长度,不多说了
perLine = arr[loop];
if (perLine.length > maxlimit)
perLine = perLine.substring(0, maxlimit);
value = value + perLine;
if (loop != lines - 1)
value = value + "n";
}
if (field.value != value)
field.value = value;
if (checkstr(value, maxlimit)) {//判断字符串长度是不是超标
field.value = value.substring(0, maxlimit);//删除超除的多余字符串
}
}

function showOverWords(obj, maxlength) {//显示剩余的可输入字符数obj为txteara对象,maxlength最大长度
len = obj.value.length;
$("#wordCount").html(maxlength - len); //这句是jquery的,可以自己相对自己改改。 表示修改id为wordCount标签的值
}

function checkstr(str, digit) {//判断中文和英文,字符串的长度是否超标
var n = 0;
for (i = 0; i < str.length; i++) {
var leg = str.charCodeAt(i);//ASCII码
if (leg > 255) {//大于255的都是中文
n += 2;//如果是中文就是2个字节
} else {
n += 1;//英文,不多说了
}
}
if (n > digit) {
return true;
} else {
return false;
}
}
</script>

调用以上代码中的三个函数即可实现我们想要的功能。

您可能感兴趣的文章:
JS限制Textarea文本域字符个数的代码分享(图文)
JS限制textarea中输入字数的代码
javascript限制文本框textarea输入字数的代码
textarea 换行字数限制问题的解决方法
js控制textarea自动换行的代码(图文)
限制textarea每行输入字符串长度的js代码
js实现textarea光标定位的方法(兼容IE和FF)
js限制TextArea字符串长度的代码


字符串常用操作:字符串反转字符串替换,如何实现字符串去除重复 ,各种字符串查找方法,字符串比较字符串转换方法,字符串截取字符串分割 ,以及如何求字符串长度 等。