中文字符串截取的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 相关文章推荐
Prototype 工具函数 学习
Jul 23 Javascript
EasyUI 中 MenuButton 的使用方法
Jul 14 Javascript
extjs 时间范围选择自动判断的实现代码
Jun 24 Javascript
JS实现仿京东淘宝竖排二级导航
Dec 08 Javascript
javascript 构造函数方式定义对象
Jan 02 Javascript
jquery制作 随机弹跳的小球特效
Feb 01 Javascript
jQuery插件MovingBoxes实现左右滑动中间放大图片效果
Feb 28 Javascript
深究AngularJS——ng-checked(回写:带真实案例代码)
Jun 13 Javascript
JavaScript中var、let、const区别浅析
Jun 24 Javascript
详解Angular中通过$location获取地址栏的参数
Aug 02 Javascript
Vue面试题及Vue知识点整理
Oct 07 Javascript
JavaScript设计模式之观察者模式实例详解
Jan 16 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
PHP5中使用PDO连接数据库的方法
2010/08/01 PHP
PHP之COOKIE支持详解
2010/09/20 PHP
PHP版QQ互联OAuth示例代码分享
2015/07/05 PHP
php 读取输出其他文件的实现方法
2016/07/26 PHP
PHP实现的基于单向链表解决约瑟夫环问题示例
2017/09/30 PHP
一个简单的js渐显(fadeIn)渐隐(fadeOut)类
2010/06/19 Javascript
浅析Prototype的模板类 Template
2011/12/07 Javascript
Three.js源码阅读笔记(Object3D类)
2012/12/27 Javascript
js函数在frame中的相互调用详解
2014/03/03 Javascript
jquery选择器大全 全面详解jquery选择器
2014/03/06 Javascript
jQuery表单域选择器用法分析
2015/02/10 Javascript
JavaScript通过function定义对象并给对象添加toString()方法实例分析
2015/03/23 Javascript
jquery图片轮播特效代码分享
2020/04/20 Javascript
JavaScript类型检测之typeof 和 instanceof 的缺陷与优化
2016/01/13 Javascript
原生 JS Ajax,GET和POST 请求实例代码
2016/06/08 Javascript
JS实现的适合做faq或menu滑动效果示例
2016/11/17 Javascript
详解webpack打包后如何调试的方法步骤
2018/11/07 Javascript
js中arguments对象的深入理解
2019/05/14 Javascript
实现vuex与组件data之间的数据同步更新方式
2019/11/12 Javascript
JavaScript Date对象功能与用法学习记录
2020/04/28 Javascript
[42:39]老党炸弹人试玩视频
2014/09/03 DOTA
[45:32]Liquid vs LGD 2018国际邀请赛淘汰赛BO3 第二场 8.23
2018/08/24 DOTA
python dlib人脸识别代码实例
2019/04/04 Python
Python实现数据结构线性链表(单链表)算法示例
2019/05/04 Python
python 中xpath爬虫实例详解
2019/08/26 Python
pywinauto自动化操作记事本
2019/08/26 Python
Python FtpLib模块应用操作详解
2019/12/12 Python
利用python对excel中一列的时间数据更改格式操作
2020/07/14 Python
python3中布局背景颜色代码分析
2020/12/01 Python
基于注解实现 SpringBoot 接口防刷的方法
2021/03/02 Python
美国真皮手袋品牌:GiGi New York
2017/03/10 全球购物
澳大利亚便宜的家庭购物网站:CrazySales
2018/02/06 全球购物
任命书范本大全
2014/06/06 职场文书
2015年计生工作总结范文
2015/04/24 职场文书
2016年春节慰问信息大全
2015/11/30 职场文书
在windows server 2012 r2中安装mysql的详细步骤
2022/07/23 Servers