网络编程 
首页 > 网络编程 > 浏览文章

js限制textarea每行输入字符串长度的代码

(编辑:jimmy 日期: 2026/5/5 浏览:3 次 )
但是textarea没有这个属性。

asp.net的服务端textbox这个属性也不起效,所以我们只有用js脚本来控制
好,废话不多说,先上代码

javascipt源码:

复制代码 代码如下:
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;
}
}


ok上面有三个函数,我们通过调用这三个函数就可以实现我们所想要的功能
上一篇:JS事件Event元素(兼容IE,Firefox,Chorme)
下一篇:JS TextArea字符串长度限制代码集合
一句话新闻
一文看懂荣耀MagicBook Pro 16
荣耀猎人回归!七大亮点看懂不只是轻薄本,更是游戏本的MagicBook Pro 16.
人们对于笔记本电脑有一个固有印象:要么轻薄但性能一般,要么性能强劲但笨重臃肿。然而,今年荣耀新推出的MagicBook Pro 16刷新了人们的认知——发布会上,荣耀宣布猎人游戏本正式回归,称其继承了荣耀 HUNTER 基因,并自信地为其打出“轻薄本,更是游戏本”的口号。
众所周知,寻求轻薄本的用户普遍更看重便携性、外观造型、静谧性和打字办公等用机体验,而寻求游戏本的用户则普遍更看重硬件配置、性能释放等硬核指标。把两个看似难以相干的产品融合到一起,我们不禁对它产生了强烈的好奇:作为代表荣耀猎人游戏本的跨界新物种,它究竟做了哪些平衡以兼顾不同人群的各类需求呢?