中文字符串截取的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 相关文章推荐
快速保存网页中所有图片的方法
Jun 23 Javascript
js 操作css实现代码
Jun 11 Javascript
JS getStyle获取最终样式函数代码
Apr 01 Javascript
JS隐藏参数post传值实例
Apr 18 Javascript
使用javascript过滤html的字符串(注释标记法)
Jul 08 Javascript
Three.js基础部分学习
Jan 08 Javascript
Angularjs自定义指令实现三级联动 选择地理位置
Feb 13 Javascript
vue中使用vue-router切换页面时滚动条自动滚动到顶部的方法
Nov 28 Javascript
vue 开发一个按钮组件的示例代码
Mar 27 Javascript
Vue二次封装axios为插件使用详解
May 21 Javascript
详解VUE前端按钮权限控制
Apr 26 Javascript
JavaScript获取页面元素的常用方法详解
Sep 28 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
饭制《星际争霸》Mod:优化游戏机制 增加新单位
2017/07/02 星际争霸
PHP爆绝对路径方法收集整理
2012/09/17 PHP
简单谈谈 php 文件锁
2017/02/19 PHP
Laravel如何使用数据库事务及捕获事务失败后的异常详解
2017/10/23 PHP
Laravel框架基于ajax和layer.js实现无刷新删除功能示例
2019/01/17 PHP
让FireFox支持innerText的实现代码
2009/12/01 Javascript
js实现的日期操作类DateTime函数代码
2010/03/16 Javascript
javascript中的变量是传值还是传址的?
2010/04/19 Javascript
鼠标焦点离开文本框时验证的js代码
2013/07/19 Javascript
JavaScript中操作Mysql数据库实例
2015/04/02 Javascript
jQuery中bind(),live(),delegate(),on()绑定事件方法实例详解
2016/01/19 Javascript
JS之相等操作符详解
2016/09/13 Javascript
实例浅析js的this
2016/12/11 Javascript
借助node实战JSONP跨域实例
2017/03/30 Javascript
react实现换肤功能的示例代码
2018/08/14 Javascript
vue给组件传递不同的值方法
2018/09/29 Javascript
js实现适配移动端的拖动效果
2020/01/13 Javascript
使用Angular9和TypeScript开发RPG游戏的方法
2020/03/25 Javascript
[01:02]2014 DOTA2国际邀请赛中国区预选赛 现场抢先看
2014/05/22 DOTA
[58:18]2018DOTA2亚洲邀请赛3月29日 小组赛B组 iG VS Mineski
2018/03/30 DOTA
在Debian下配置Python+Django+Nginx+uWSGI+MySQL的教程
2015/04/25 Python
简单谈谈Python中函数的可变参数
2016/09/02 Python
python 根据正则表达式提取指定的内容实例详解
2016/12/04 Python
python getopt详解及简单实例
2016/12/30 Python
python opencv人脸检测提取及保存方法
2018/08/03 Python
使用Python调取任意数字资产钱包余额功能
2019/08/15 Python
详解Python并发编程之从性能角度来初探并发编程
2019/08/23 Python
tensorflow入门:TFRecordDataset变长数据的batch读取详解
2020/01/20 Python
精选奢华:THE LIST
2019/09/05 全球购物
以思科路由器为例你写下单臂路由的配置命令
2013/08/03 面试题
环境工程求职简历的自我评价范文
2013/10/24 职场文书
2014法制宣传日活动总结
2014/07/09 职场文书
私人房屋买卖协议书
2014/10/04 职场文书
《跨越海峡的生命桥》教学反思
2016/02/18 职场文书
《坐井观天》教学反思
2016/02/18 职场文书
PHP RabbitMQ消息列队
2022/05/11 PHP