中文字符串截取的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 相关文章推荐
YUI 读码日记之 YAHOO.util.Dom - Part.1
Mar 22 Javascript
ExtJS TabPanel beforeremove beforeclose使用说明
Mar 31 Javascript
JS 弹出层 定位至屏幕居中示例
May 21 Javascript
js中confirm实现执行操作前弹出确认框的方法
Nov 01 Javascript
node.js中的fs.lchown方法使用说明
Dec 16 Javascript
微信小程序 wx:key详细介绍
Oct 28 Javascript
JQuery实现列表中复选框全选反选功能封装(推荐)
Nov 24 Javascript
jQuery中on方法使用注意事项详解
Feb 15 Javascript
基于vue实现多引擎搜索及关键字提示
Mar 16 Javascript
Node.js实现用户评论社区功能(体验前后端开发的乐趣)
May 09 Javascript
Flutter实现仿微信底部菜单栏功能
Sep 18 Javascript
Vue3中的Refs和Ref详情
Nov 11 Vue.js
解决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
PHP中MD5函数使用实例代码
2008/06/07 PHP
Codeigniter实现发送带附件的邮件
2015/03/19 PHP
php英文单词统计器
2016/06/23 PHP
YII框架http缓存操作示例
2019/04/29 PHP
ThinkPHP5.1框架页面跳转及修改跳转页面模版示例
2019/05/06 PHP
js 单引号 传递方法
2009/06/22 Javascript
6个DIV 135或246间隔一秒轮番显示效果
2010/07/24 Javascript
filters.revealTrans.Transition使用方法小结
2010/08/19 Javascript
JQuery操作iframe父页面与子页面的元素与方法(实例讲解)
2013/11/20 Javascript
jquery遍历之parent()和parents()的区别及parentsUntil()方法详解
2013/12/02 Javascript
Javascript中call的两种用法实例
2013/12/13 Javascript
javascript操作excel生成报表全攻略
2014/05/04 Javascript
javascript里绝对用的上的字符分割函数总结
2014/07/31 Javascript
比较常见的javascript中定义函数的区别
2015/11/09 Javascript
JavaScript中的ajax功能的概念和示例详解
2016/10/17 Javascript
Bootstrap源码解读模态弹出框(11)
2016/12/28 Javascript
Angular中ng-repeat与ul li的多层嵌套重复问题
2017/07/24 Javascript
Vue项目中引入外部文件的方法(css、js、less)
2017/07/24 Javascript
Webpack框架核心概念(知识点整理)
2017/12/22 Javascript
vue-lazyload图片延迟加载插件的实例讲解
2018/02/09 Javascript
vue实现购物车抛物线小球动画效果的方法详解
2019/02/13 Javascript
vue通信方式EventBus的实现代码详解
2019/06/10 Javascript
教你搭建按需加载的Vue组件库(小结)
2019/07/29 Javascript
使用layui 的layedit定义自己的toolbar方法
2019/09/18 Javascript
vue-dplayer 视频播放器实例代码
2019/11/08 Javascript
Python栈类实例分析
2015/06/15 Python
Python构建网页爬虫原理分析
2017/12/19 Python
几种实用的pythonic语法实例代码
2018/02/24 Python
Django之使用内置函数和celery发邮件的方法示例
2019/09/16 Python
一款纯css3实现的动画加载导航
2014/10/08 HTML / CSS
详解CSS3新增的背景属性
2019/12/25 HTML / CSS
暑假社会实践证明格式
2014/10/28 职场文书
警示教育观后感
2015/06/17 职场文书
教您怎么制定西餐厅运营方案 ?
2019/07/05 职场文书
pandas求平均数和中位数的方法实例
2021/08/04 Python