中文字符串截取的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 相关文章推荐
可以显示单图片,多图片ajax请求的ThickBox3.1类下载
Dec 23 Javascript
解决iframe的frameborder在chrome/ff/ie下的差异
Aug 12 Javascript
DOM 事件流详解
Jan 20 Javascript
jquery不常用方法汇总
Jul 26 Javascript
Bootstrap导航条的使用和理解3
Dec 14 Javascript
JavaScript中最常用的10种代码简写技巧总结
Jun 28 Javascript
JS倒计时实例_天时分秒
Aug 22 Javascript
完美解决axios跨域请求出错的问题
Feb 05 Javascript
vue2.0 根据状态值进行样式的改变展示方法
Mar 13 Javascript
原生JavaScript实现的无缝滚动功能详解
Jan 17 Javascript
JavaScript数组去重实现方法小结
Jan 17 Javascript
JavaScript代码异常监控实现过程详解
Feb 17 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
后宫无数却洁身自好的男主,唐三只爱小舞
2020/03/02 国漫
PHP中的按位与和按位或操作示例
2014/01/27 PHP
PHP实现基于状态的责任链审批模式详解
2019/05/31 PHP
Laravel框架Blade模板简介及模板继承用法分析
2019/12/03 PHP
JavaScript 事件的一些重要说明
2009/10/25 Javascript
tangram框架响应式加载图片方法
2013/11/21 Javascript
Jquery Ajax方法传值到action的方法
2014/05/11 Javascript
js简单实现点击左右运动的方法
2015/04/10 Javascript
解决vue里碰到 $refs 的问题的方法
2017/07/13 Javascript
详解jQuery同步Ajax带来的UI线程阻塞问题及解决办法
2017/08/09 jQuery
javascript基于牛顿迭代法实现求浮点数的平方根【递归原理】
2017/09/28 Javascript
实现图片首尾平滑轮播(JS原生方法—节流)
2017/10/17 Javascript
element ui 对话框el-dialog关闭事件详解
2018/02/26 Javascript
JavaScript实现表单注册、表单验证、运算符功能
2018/10/15 Javascript
JS三级联动代码格式实例详解
2019/12/30 Javascript
[01:54]TI4西雅图DOTA2选手欢迎晚宴 现场报道
2014/07/08 DOTA
[01:14:55]EG vs Spirit Supermajor 败者组 BO3 第三场 6.4
2018/06/05 DOTA
Python中断言Assertion的一些改进方案
2016/10/27 Python
利用Python如何实现数据驱动的接口自动化测试
2018/05/11 Python
实例详解python函数的对象、函数嵌套、名称空间和作用域
2019/05/31 Python
python 并发编程 多路复用IO模型详解
2019/08/20 Python
python栈的基本定义与使用方法示例【初始化、赋值、入栈、出栈等】
2019/10/24 Python
Python使用docx模块实现刷题功能代码
2020/02/13 Python
Python猜数字算法题详解
2020/03/01 Python
selenium+python自动化78-autoit参数化与批量上传功能的实现
2021/03/04 Python
用HTML5制作视频拼图的教程
2015/05/13 HTML / CSS
英国街头品牌:Bee Inspired Clothing
2018/02/12 全球购物
会话Bean的种类
2013/11/07 面试题
生物技术研究生自荐信
2013/11/12 职场文书
《孔繁森》教学反思
2014/04/17 职场文书
党的群众路线教育实践活动通讯稿
2014/09/10 职场文书
2015年幼儿园保育员工作总结
2015/04/23 职场文书
Python 内置函数速查表一览
2021/06/02 Python
MySQL中varchar和char类型的区别
2021/11/17 MySQL
原生JS实现分页
2022/04/19 Javascript
一文解答什么是MySQL的回表
2022/08/05 MySQL