博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
javascript 中英文字符长度和截断处理
阅读量:4662 次
发布时间:2019-06-09

本文共 1319 字,大约阅读时间需要 4 分钟。

因:javascript中的String类自带的length属性 和 substr()方法虽然能判断和截取出字符个数,但是对字节个数却没有处理的方法(众所周知,中文字符占两个字节,英文只占一个)

果:中英文字符在页面上的占位空间存在差异。中文的web开发人员不能一刀切,对中英文都截取同样长度的字符数。

网上大致有两种方法处理中英文字符。一种是把中文字符escape了,然后计算字节长度。一种是用正则表达式把中文字符转换2个字节的符号,然后计算长度

推荐第二种方法,简单明了,速度快,效率高。

按照第二种方法,对javascript 的 String类型做以下扩展:

一.String.len() 方法,计算字符串字节个数:

String.prototype.len=function()          {                  return this.replace(/[^\x00-\xff]/g,"rr").length;          }

二.String.sub(endindex) 方法,从0开始截取endindex长度的字节数。

String.prototype.sub = function(n){     var r = /[^\x00-\xff]/g;     if(this.replace(r, "mm").length <= n) return this;    // n = n - 3;     var m = Math.floor(n/2);     for(var i=m; i
=n) { return this.substr(0, i) ; } } return this; };

 三.根据unicode编码范围

String.prototype.gblen = function() {        var len = 0;        for (var i=0; i
127 || this.charCodeAt(i)==94) { len += 2; } else { len ++; } } return len; }

参考:http://blog.csdn.net/testcs_dn/article/details/21412303

 charCodeAt()

定义和用法

charCodeAt() 方法可返回指定位置的字符的 Unicode 编码。这个返回值是 0 - 65535 之间的整数。

方法 charCodeAt() 与 charAt() 方法执行的操作相似,只不过前者返回的是位于指定位置的字符的编码,而后者返回的是字符子串。

 

字符编码:http://www.cnblogs.com/darr/p/5355178.html

 

转载于:https://www.cnblogs.com/darr/p/5354858.html

你可能感兴趣的文章
jquery小效果:新浪游戏右侧导航菜单 (页面效果)
查看>>
compatible
查看>>
在xml中使用图片资源时,设置重复图片而不是拉伸平铺
查看>>
中华典故故事(孙刚)汇总
查看>>
AttributeBehavior
查看>>
Centos7安装tomcat(wget获取安装包)
查看>>
java集合系列之HashMap源码
查看>>
在网页加载完毕时给文本框添加焦点
查看>>
线性表
查看>>
HTML总结
查看>>
oracle数据库中数据文件,控制文件,日志文件,参数文件的存取路径:
查看>>
【基础】Oracle基础3
查看>>
gridview 选中行
查看>>
【数值优化】基础
查看>>
相机与图像
查看>>
Spring Boot 各版本的Java版本要求
查看>>
淡蓝色感应鼠标显示二级菜单的CSS导航菜单
查看>>
上周热点回顾(1.5-1.11)
查看>>
Flink分布式缓存Distributed Cache
查看>>
Java复习之包及访问控制权限
查看>>