中文字符串截取的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 创建对象和构造类实现代码
Jul 30 Javascript
eval与window.eval的差别分析
Mar 17 Javascript
jquery 判断selection range 是否在容器中的简单实例
Aug 02 Javascript
jQuery的图片轮播插件PgwSlideshow使用详解
Aug 11 Javascript
详解使用vue-router进行页面切换时滚动条位置与滚动监听事件
Mar 08 Javascript
angularjs定时任务的设置与清除示例
Jun 02 Javascript
解决js ajax同步请求造成浏览器假死的问题
Jan 18 Javascript
微信小程序如何获取openid及用户信息
Jan 26 Javascript
vue-cli3添加模式配置多环境变量的方法
Jun 05 Javascript
详细教你微信公众号正文页SVG交互开发技巧
Jul 25 Javascript
vue.config.js中配置Vue的路径别名的方法
Feb 11 Javascript
JS算法教程之字符串去重与字符串反转
Dec 15 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
东芝TOSHIBA RP-F11电路分析
2021/03/02 无线电
php入门学习知识点二 PHP简单的分页过程与原理
2011/07/14 PHP
超级实用的7个PHP代码片段分享
2012/01/05 PHP
JQuery最佳实践之精妙的自定义事件
2010/08/11 Javascript
javascript日期验证之输入日期大于等于当前日期
2015/12/13 Javascript
AngularJS深入探讨scope,继承结构,事件系统和生命周期
2016/11/02 Javascript
微信小程序 自定义Toast实例代码
2017/06/12 Javascript
vue实现点击展开点击收起效果
2018/04/27 Javascript
JS中的JSON对象的定义和取值实现代码
2018/05/09 Javascript
vue实现压缩图片预览并上传功能(promise封装)
2019/01/10 Javascript
使用 vue 实现灭霸打响指英雄消失的效果附demo
2019/05/06 Javascript
layui 数据表格 根据值(1=业务,2=机构)显示中文名称示例
2019/10/26 Javascript
javascript设计模式之装饰者模式
2020/01/30 Javascript
[01:00:12]2018DOTA2亚洲邀请赛 4.7 淘汰赛 VP vs LGD 第一场
2018/04/09 DOTA
详解Python中__str__和__repr__方法的区别
2015/04/17 Python
python实现支持目录FTP上传下载文件的方法
2015/06/03 Python
Python字符串拼接、截取及替换方法总结分析
2016/04/13 Python
Python基于QRCode实现生成二维码的方法【下载,安装,调用等】
2017/07/11 Python
对pandas中to_dict的用法详解
2018/06/05 Python
Python Learning 列表的更多操作及示例代码
2018/08/22 Python
python针对不定分隔符切割提取字符串的方法
2018/10/26 Python
对python多线程中Lock()与RLock()锁详解
2019/01/11 Python
检测python爬虫时是否代理ip伪装成功的方法
2019/07/12 Python
python 使用while写猜年龄小游戏过程解析
2019/10/07 Python
Python实现银行账户资金交易管理系统
2020/01/03 Python
HTML5-WebSocket实现聊天室示例
2016/12/15 HTML / CSS
工厂采购员岗位职责
2014/04/08 职场文书
上海世博会志愿者口号
2014/06/17 职场文书
幼儿园门卫岗位职责范本
2014/07/02 职场文书
综治工作心得体会
2014/09/11 职场文书
工作骂脏话检讨书
2014/10/05 职场文书
思想品德课教学反思
2016/02/24 职场文书
Django debug为True时,css加载失败的解决方案
2021/04/24 Python
golang import自定义包方式
2021/04/29 Golang
用几道面试题来看JavaScript执行机制
2021/04/30 Javascript
Python 文字识别
2022/05/11 Python