您的位置:首页 > Web前端 > JavaScript

js对输入文字个数的限制...

2016-05-03 15:16 357 查看
发表留言或者微博的时候,对输入文字个数的限制,下面分两种情况,每种分别介绍两种实现方式:

第一种:一个汉字算一位,两个字母或符号算一位。

通过ASCII编码来判断

textarea.onkeyup = function(){
//[^\x00-\xff]即ASCII编码不在0-255的字符,也就是汉子了,先把所有汉子换成任意两个字符,最后除以2,得到一个字符
var n = 150- Math.floor(this.value.replace(/[^\x00-\xff]/g,"aa").length/2)
span.innerHTML = n <=0 ? 0 : n;
};


通过charCodeAt编码来判断

//键盘up的时候判断
textarea.onkeyup = function(){
var n = 1  ; //字母或符号累加判断
var num = 0;  //总个数累加判断
for (var i = 0; i < this.value.length; i++) {
//根据charCodeAt来判断输入的是中文还是字母,符号
charCode = this.value.charCodeAt(i);
if (charCode >= 0 && charCode <= 128){
//通过n模2来判断输入两次累加
n++;
if(n%2 == 0) num += 1;
}else{
num += 1;
}
};
span.innerHTML = 150-num <=0 ? 0 : 150-num;
};


另一种:是一个汉字算两位,一个字母或者符号算一位

通过ASCII编码来判断

textarea.onkeyup = function(){
//[^\x00-\xff]即ASCII编码不在0-255的字符,也就是汉子了,先把所有汉子换成任意两个字符
var n = 150- this.value.replace(/[^\x00-\xff]/g,"aa").length
span.innerHTML = n <=0 ? 0 : n;
};


通过charCodeAt编码来判断

//键盘up的时候判断
textarea.onkeyup = function(){
var num = 0;  //总个数累加判断
for (var i = 0; i < this.value.length; i++) {
//根据charCodeAt来判断输入的是中文还是字母,符号
charCode = this.value.charCodeAt(i);
if (charCode >= 0 && charCode <= 128){
//字符就+1
num += 1;
}else{
//汉子就+2
num += 2;
}
};
span.innerHTML = 150-num <=0 ? 0 : 150-num;
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: