中文字符串截取的js函数代码


Posted in Javascript onApril 17, 2013

为了解决这个问题昨天写了根据字节数截取字符串的函数。
具体使用很简单,跟String.subString(start, end)一样使用就可。比如:var str = "诶必塞第衣爱抚即"; var str1 = str.subCHStr(2, 2); var str2 = str.subCHString(2, 4); alert(str1 + " == " + str2);

Code
//计算字符串长度
String.prototype.strLen = function() {
    var len = 0;
    for (var i = 0; i < this.length; i++) {
        if (this.charCodeAt(i) > 255 || this.charCodeAt(i) < 0) len += 2; else len ++;
    }
    return len;
}
//将字符串拆成字符,并存到数组中
String.prototype.strToChars = function(){
   var chars = new Array();
   for (var i = 0; i < this.length; i++){
       chars[i] = [this.substr(i, 1), this.isCHS(i)];
   }
   String.prototype.charsArray = chars;
   return chars;
}
//判断某个字符是否是汉字
String.prototype.isCHS = function(i){
   if (this.charCodeAt(i) > 255 || this.charCodeAt(i) < 0) 
       return true;
   else
       return false;
}
//截取字符串(从start字节到end字节)
String.prototype.subCHString = function(start, end){
   var len = 0;
   var str = "";
   this.strToChars();
   for (var i = 0; i < this.length; i++) {
       if(this.charsArray[i][1])
           len += 2;
       else
           len++;
       if (end < len)
           return str;
       else if (start < len)
           str += this.charsArray[i][0];
   }
   return str;
}
//截取字符串(从start字节截取length个字节)
String.prototype.subCHStr = function(start, length){
   return this.subCHString(start, start + length);
}
Javascript 相关文章推荐
js的一些常用方法小结
Jun 29 Javascript
jquery maxlength使用说明
Sep 09 Javascript
解决jquery submit()提交表单提示:f[s] is not a function
Jan 23 Javascript
jQuery之排序组件的深入解析
Jun 19 Javascript
js将json格式内容转换成对象的方法
Nov 01 Javascript
JQuery中extend使用介绍
Mar 13 Javascript
JavaScript的Polymer框架中dom-repeat与VM的相关操作
Jul 29 Javascript
详解Javacript和AngularJS中的Promises
Feb 09 Javascript
webpack配置打包后图片路径出错的解决
Apr 26 Javascript
Node.js 如何利用异步提升任务处理速度
Jan 07 Javascript
vue+element实现图片上传及裁剪功能
Jun 29 Javascript
JavaScript常用工具函数库汇总
Sep 17 Javascript
解决IE6的PNG透明JS插件使用介绍
Apr 17 #Javascript
Web跨浏览器进程通信(Web跨域)
Apr 17 #Javascript
js读写(删除)Cookie实例详解
Apr 17 #Javascript
基于dom编程中 动态创建与删除元素的使用
Apr 17 #Javascript
javaScript(JS)替换节点实现思路介绍
Apr 17 #Javascript
用函数模板,写一个简单高效的 JSON 查询器的方法介绍
Apr 17 #Javascript
JS对img进行操作(换图片/切图/轮换/停止)
Apr 17 #Javascript
You might like
改德生G88 - 加装等响度低音提升电路
2021/03/02 无线电
substr()函数中文版
2006/10/09 PHP
wordpress自定义url参数实现路由功能的代码示例
2013/11/28 PHP
PHP通过CURL实现定时任务的图片抓取功能示例
2016/10/03 PHP
鼠标移动到一张图片时变为另一张图片
2006/12/05 Javascript
JavaScript CSS修改学习第六章 拖拽
2010/02/19 Javascript
passwordStrength 基于jquery的密码强度检测代码使用介绍
2011/10/08 Javascript
JavaScript中的16进制字符(改进)
2011/11/21 Javascript
jQuery实现div浮动层跟随页面滚动效果
2014/02/11 Javascript
Node.js中require的工作原理浅析
2014/06/24 Javascript
Json实现异步请求提交评论无需跳转其他页面
2014/10/11 Javascript
基于JavaScript实现前端文件的断点续传
2016/10/17 Javascript
判断横屏竖屏(三种)
2017/02/13 Javascript
bootstrap IE8 兼容性处理
2017/03/22 Javascript
jquery实现侧边栏左右伸缩效果的示例
2017/12/19 jQuery
LayerClose弹窗关闭刷新方法
2018/08/17 Javascript
微信小程序下拉加载和上拉刷新两种实现方法详解
2019/09/05 Javascript
js面向对象方式实现拖拽效果
2021/03/03 Javascript
学习python之编写简单乘法口诀表实现代码
2016/02/27 Python
Python2随机数列生成器简单实例
2017/09/04 Python
基于Python pip用国内镜像下载的方法
2018/06/12 Python
Python使用itertools模块实现排列组合功能示例
2018/07/02 Python
python中ASCII码字符与int之间的转换方法
2018/07/09 Python
如何使用python3获取当前路径及os.path.dirname的使用
2019/12/13 Python
Python的形参和实参使用方式
2019/12/24 Python
Win10下安装并使用tensorflow-gpu1.8.0+python3.6全过程分析(显卡MX250+CUDA9.0+cudnn)
2020/02/17 Python
python简单实现最大似然估计&amp;scipy库的使用详解
2020/04/15 Python
Java中会存在内存泄漏吗,请简单描述
2016/12/22 面试题
医学毕业生自我鉴定
2013/10/30 职场文书
大学生实习鉴定评语
2014/04/25 职场文书
学习型党组织心得体会
2014/09/12 职场文书
学校党员个人问题整改措施思想汇报
2014/10/08 职场文书
单位工作证明范本
2015/06/15 职场文书
秋季运动会加油词
2015/07/18 职场文书
《确定位置》教学反思
2016/02/18 职场文书
Nginx配置Https安全认证的实现
2021/05/26 Servers