中文字符串截取的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 事件查询综合 推荐收藏
Mar 10 Javascript
通过AJAX的JS、JQuery两种方式解析XML示例介绍
Sep 23 Javascript
巧用局部变量提升javascript性能
Feb 24 Javascript
在jquery boxy中添加百度地图坐标拾取注意流程
Apr 03 Javascript
实例详解jQuery Mockjax 插件模拟 Ajax 请求
Jan 12 Javascript
js记录点击某个按钮的次数-刷新次数为初始状态的实例
Feb 15 Javascript
vue.js之vue-cli脚手架的搭建详解
May 05 Javascript
Vue中render函数的使用方法
Jan 31 Javascript
vue自定义指令的创建和使用方法实例分析
Dec 04 Javascript
基于JS实现web端录音与播放功能
Apr 17 Javascript
微信小程序实现电子签名功能
Jul 29 Javascript
Vue过滤器(filter)实现及应用场景详解
Jun 15 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 随机数的产生、页面跳转、件读写、文件重命名、switch语句
2009/08/07 PHP
php解析url的三个示例
2014/01/20 PHP
PHP中的按位与和按位或操作示例
2014/01/27 PHP
PHP中常见的缓存技术实例分析
2015/09/23 PHP
Zend Framework教程之Zend_Config_Ini用法分析
2016/03/23 PHP
ThinkPHP的SAE开发相关注意事项详解
2016/10/09 PHP
PHP实现压缩图片尺寸并转为jpg格式的方法示例
2018/05/10 PHP
一个高效的JavaScript压缩工具下载集合
2007/03/06 Javascript
jQuery 位置函数offset,innerWidth,innerHeight,outerWidth,outerHeight,scrollTop,scrollLeft
2010/03/23 Javascript
node.js中的fs.fchownSync方法使用说明
2014/12/16 Javascript
在AngularJS应用中实现一些动画效果的代码
2015/06/18 Javascript
jQuery实现带有洗牌效果的动画分页实例
2015/08/31 Javascript
JavaScript基础篇(3)之Object、Function等引用类型
2015/11/30 Javascript
javascript实现checkbox复选框实例代码
2016/01/10 Javascript
Angularjs实现多个页面共享数据的方式
2016/03/29 Javascript
jqueryMobile 动态添加元素,展示刷新视图的实现方法
2016/05/28 Javascript
jQuery简单判断值是否存在于数组中的方法示例
2018/04/17 jQuery
js统计页面上每个标签的数量实例代码
2018/05/29 Javascript
vue中使用element-ui进行表单验证的实例代码
2018/06/22 Javascript
如何用RxJS实现Redux Form
2018/12/29 Javascript
python简单判断序列是否为空的方法
2015/06/30 Python
详解python 拆包可迭代数据如tuple, list
2017/12/29 Python
用Python PIL实现几个简单的图片特效
2019/01/18 Python
Python线程之定位与销毁的实现
2019/02/17 Python
树莓派使用USB摄像头和motion实现监控
2019/06/22 Python
在pytorch中对非叶节点的变量计算梯度实例
2020/01/10 Python
如何提高python 中for循环的效率
2020/04/15 Python
在spyder IPython console中,运行代码加入参数的实例
2020/04/20 Python
在pycharm中关掉ipython console/PyDev操作
2020/06/09 Python
python如何安装下载后的模块
2020/07/03 Python
python接口自动化之ConfigParser配置文件的使用详解
2020/08/03 Python
详解css3 object-fit属性
2018/07/27 HTML / CSS
使用HTML5加载音频和视频的实现代码
2020/11/30 HTML / CSS
副总经理岗位职责
2014/03/16 职场文书
焦裕禄精神心得体会
2014/09/02 职场文书
Python可视化学习之matplotlib内置单颜色
2022/02/24 Python