中文字符串截取的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 相关文章推荐
javascript表单验证 - Parsley.js使用和配置
Jan 25 Javascript
javascript中的parseInt和parseFloat区别
Jul 12 Javascript
jquery 判断滚动条到达了底部和顶端的方法
Apr 02 Javascript
JavaScript使用concat连接数组的方法
Apr 06 Javascript
jQuery实现企业网站横幅焦点图切换功能实例
Apr 30 Javascript
jquery实现图片左右切换的方法
May 07 Javascript
简单谈谈javascript Date类型
Sep 06 Javascript
javascript bom是什么及bom和dom的区别
Nov 26 Javascript
JavaScript中rem布局在react中的应用
Dec 09 Javascript
jQuery悬停文字提示框插件jquery.tooltipster.js用法示例【附demo源码下载】
Jul 19 Javascript
vue结合element-ui使用示例
Jan 24 Javascript
微信小程序云开发获取文件夹下所有文件(推荐)
Nov 14 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
ADODB的数据库封包程序库
2006/12/31 PHP
队列在编程中的实际应用(php)
2010/09/04 PHP
浅谈php serialize()与unserialize()的用法
2013/06/05 PHP
PHP单例模式是什么 php实现单例模式的方法
2016/05/14 PHP
Yii多表联合查询操作详解
2016/06/02 PHP
PHP简单装饰器模式实现与用法示例
2017/06/22 PHP
PHP 实现 JSON 数据的编码和解码操作详解
2020/04/22 PHP
JavaScript实用技巧(一)
2010/08/16 Javascript
利用CSS、JavaScript及Ajax实现高效的图片预加载
2013/10/16 Javascript
关于JavaScript命名空间的一些心得
2014/06/07 Javascript
原生js实现复制对象、扩展对象 类似jquery中的extend()方法
2014/08/30 Javascript
javascript事件委托的用法及其好处简析
2016/04/04 Javascript
解决JS组件bootstrap table分页实现过程中遇到的问题
2016/04/21 Javascript
JS模拟的Map类实现方法
2016/06/17 Javascript
获取input标签的所有属性的方法
2016/06/28 Javascript
nodejs如何获取时间戳与时间差
2016/08/03 NodeJs
Javascript计算二维数组重复值示例代码
2016/12/18 Javascript
Vue2路由动画效果的实现代码
2017/07/10 Javascript
js中如何完美的解析数据
2018/03/18 Javascript
JS事件流与事件处理程序实例分析
2019/08/16 Javascript
JavaScript实现H5接金币功能(实例代码)
2021/02/22 Javascript
python安装mysql-python简明笔记(ubuntu环境)
2016/06/25 Python
浅谈python3.x pool.map()方法的实质
2019/01/16 Python
Python动态赋值的陷阱知识点总结
2019/03/17 Python
keras模型保存为tensorflow的二进制模型方式
2020/05/25 Python
python中如何进行连乘计算
2020/05/28 Python
浅谈CSS3动画的回调处理
2016/07/21 HTML / CSS
学生处主任岗位职责
2013/12/01 职场文书
观看《永远的雷锋》心得体会
2014/03/12 职场文书
安全责任书范本
2014/04/15 职场文书
辩护词范文大全
2015/05/21 职场文书
婚礼双方父亲致辞
2015/07/27 职场文书
高三毕业感言
2015/07/30 职场文书
2016年教师节特级教师获奖感言
2015/12/09 职场文书
导游词之西安骊山
2019/12/20 职场文书
JavaScript的Set数据结构详解
2022/02/18 Javascript