js substr支持中文截取函数代码(中文是双字节)


Posted in Javascript onApril 17, 2013
<script language="JavaScript"> 
//得到字符总数
function getChars(str) {
 var i = 0;
 var c = 0.0;
 var unicode = 0;
 var len = 0;
 if (str == null || str == "") {
  return 0;
 }
 len = str.length;
 for(i = 0; i < len; i++) {
   unicode = str.charCodeAt(i);
  if (unicode < 127) { //判断是单字符还是双字符
   c += 1;
  } else {  //chinese
   c += 2;
  }
 }
 return c;
}
function sb_strlen(str) {
    return getChars(str);
}
//截取字符
function sb_substr(str, startp, endp) {
    var i=0; c = 0; unicode=0; rstr = '';
    var len = str.length;
    var sblen = sb_strlen(str);
    if (startp < 0) {
        startp = sblen + startp;
    }
    if (endp < 1) {
        endp = sblen + endp;// - ((str.charCodeAt(len-1) < 127) ? 1 : 2);
    }
    // 寻找起点
    for(i = 0; i < len; i++) {
        if (c >= startp) {
            break;
        }
     var unicode = str.charCodeAt(i);
  if (unicode < 127) {
   c += 1;
  } else {
   c += 2;
  }
 }
 // 开始取
 for(i = i; i < len; i++) {
     var unicode = str.charCodeAt(i);
  if (unicode < 127) {
   c += 1;
  } else {
   c += 2;
  }
  rstr += str.charAt(i);
  if (c >= endp) {
      break;
  }
 }
 return rstr;
}
//调用示例:
function getShortFileName(filename) {
    short_filename = filename;
    if (sb_strlen(short_filename) > 61) {
        short_filename = sb_substr(short_filename, 0, 36) + ' ... ' + sb_substr(short_filename, -20);
    }
    return short_filename;
}
var chara = 'ni你2好1啊!'
js_self = chara.substr(4);
test = sb_substr(chara,4);
alert("js_self:"+js_self+"ext:"+test);
</script>
function mb_strlen(str) {
 var len = 0;
 for(var i = 0; i < str.length; i++) {
  len += str.charCodeAt(i) < 0 || str.charCodeAt(i) > 255 ? (charset == 'utf-8' ? 3 : 2) : 1;
 }
 return len;
}
Javascript 相关文章推荐
JavaSacript中charCodeAt()方法的使用详解
Jun 05 Javascript
浅谈JavaScript字符串拼接
Jun 25 Javascript
jQuery简单实现tab选项卡切换效果
Jun 20 Javascript
模拟javascript中的sort排序(简单实例)
Aug 17 Javascript
JS去除重复并统计数量的实现方法
Dec 15 Javascript
微信小程序 自己制作小组件实例详解
Dec 22 Javascript
初学者AngularJS的环境搭建过程
Oct 27 Javascript
jQuery实现的淡入淡出与滑入滑出效果示例
Apr 18 jQuery
Node.js连接Sql Server 2008及数据层封装详解
Aug 27 Javascript
微信小程序适配iphoneX的实现方法
Sep 18 Javascript
使用Vue.js 和Chart.js制作绚丽多彩的图表
Jun 15 Javascript
使用JavaScript实现贪吃蛇游戏
Sep 29 Javascript
中文字符串截取的js函数代码
Apr 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
You might like
PHP 的 __FILE__ 常量
2007/01/15 PHP
xss防御之php利用httponly防xss攻击
2014/03/21 PHP
PHP register_shutdown_function()函数的使用示例
2015/06/23 PHP
PHP addcslashes()函数讲解
2019/02/03 PHP
PHP7生产环境队列Beanstalkd用法详解
2020/05/19 PHP
javascript编程起步(第四课)
2007/02/27 Javascript
用JavaScript编写COM组件的步骤
2009/03/17 Javascript
不一样的文字闪烁 轮番闪烁
2009/11/11 Javascript
使用jQuery实现dropdownlist的联动效果(sharepoint 2007)
2011/03/30 Javascript
jQuery EasyUI API 中文文档 - Menu菜单
2011/10/03 Javascript
用Javascript实现Windows任务管理器的代码
2012/03/27 Javascript
JS打开图片另存为对话框实现代码
2012/12/26 Javascript
JQuery加载图片自适应固定大小的DIV
2013/09/12 Javascript
jquery实现点击消失的代码
2014/03/03 Javascript
javascript制作的网页侧边弹出框思路及实现代码
2014/05/21 Javascript
jquery+css实现绚丽的横向二级下拉菜单-附源码下载
2015/08/23 Javascript
JQuery操作textarea,input,select,checkbox方法
2015/09/02 Javascript
Zero Clipboard实现浏览器复制到剪贴板的方法(多个复制按钮)
2016/03/24 Javascript
Vuejs实现带样式的单文件组件新方法
2017/05/02 Javascript
jQuery制作input提示内容(兼容IE8以上)
2017/07/05 jQuery
深入理解react-router 路由的实现原理
2018/09/26 Javascript
jQuery实现滑动开关效果
2020/08/02 jQuery
Vue SPA 首屏优化方案
2021/02/26 Vue.js
[01:08:24]DOTA2-DPC中国联赛 正赛 RNG vs Phoenix BO3 第一场 2月5日
2021/03/11 DOTA
Python实现的几个常用排序算法实例
2014/06/16 Python
全面解读Python Web开发框架Django
2014/06/30 Python
8种用Python实现线性回归的方法对比详解
2019/07/10 Python
Python如何使用BeautifulSoup爬取网页信息
2019/11/26 Python
基于HTML5实现类似微信手机摇一摇功能(计算摇动次数)
2017/07/24 HTML / CSS
浅谈Html5多线程开发之WebWorkers
2018/05/02 HTML / CSS
电气工程及其自动化学生实习自我鉴定
2013/09/19 职场文书
周鸿祎:教你写创业计划书
2013/12/30 职场文书
党员专题组织生活会发言材料
2014/10/17 职场文书
具结保证书范本
2015/05/11 职场文书
导游词之广西漓江
2019/11/02 职场文书
python实现商品进销存管理系统
2022/05/30 Python