js对输入文字个数的限制...
2016-05-03 15:16
357 查看
发表留言或者微博的时候,对输入文字个数的限制,下面分两种情况,每种分别介绍两种实现方式:
第一种:一个汉字算一位,两个字母或符号算一位。
通过ASCII编码来判断
通过charCodeAt编码来判断
另一种:是一个汉字算两位,一个字母或者符号算一位
通过ASCII编码来判断
通过charCodeAt编码来判断
第一种:一个汉字算一位,两个字母或符号算一位。
通过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; };
相关文章推荐
- JS根据设备宽度设置根节点(html)font-size字体大小
- javascript
- 常见js dom等原生示例
- 简单记录jsp
- Javascript模块化编程(三):require.js的用法
- javascript内存和性能
- js template模版引擎 为什么要用
- Javascript模块化编程(二):AMD规范
- js 浏览器写coke
- Javascript 模块化编程(一):模块的写法
- JS挂马攻防
- 注意区分:JSON字符串和Javascript对象字面量
- JSON判断是否有此属性(key)键值
- 两排滚动js
- split一些简单的分隔(js)
- 聊一聊JavaScript作用域和作用域链
- prefixfree.min.js插件的了解
- js解决列表中按钮重复点击重复提交的问题
- 小白谈谈对JS原型链的理解
- angular.js[2]