主页 > 教程合集 > Html/css >

利用JS实现对输入文字个数限制的方法

时间:2021-01-03 阅读:0

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

利用JS实现对输入文字个数限制的方法

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

通过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;
};
 

开通特权,即可免费下载全站所有千余TB网络资源,点击 >>> 资源目录 查看所有资源,覆盖音乐、影视、有声书、电子书、漫画、动漫、课程等,不限时间次数,永久免费,点击 >>> 特权详情 了解更多!

余斗余斗
  • 版权声明:原创文章由发表在Html/css分类下,2021-01-03最后更新,转载注明出处。

相关推荐

返回顶部