JS实现中英文混合文字溢出友好截取功能


Posted in Javascript onAugust 06, 2018

在显示字符串的时候,避免字符串过长往往会对字符串进行截取操作,通常会用到js的 substr 或者 substring方法, 以及 字符串的length属性

substr() 方法可在字符串中抽取从 start 下标开始的指定数目的字符。

substring() 方法用于提取字符串中介于两个指定下标之间的字符。

对于非中文的字符串处理是很简单的,但是中文字符的 length  属性值 是1  而不是 2 ,所以处理就不是很友好了。  

例如  你有一个字符串   'abcdefg' 和   '我爱中华人民共和国'

你只想显示五位长度,往往会这样操作  str = str.substr(0, 5);

但是 'abcde '与 '我爱中华人' 所占的宽度是不同的,因为中文往往占2字节, 为了显示效果更好, 特封装如下函数:

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>JS实现中英文混合文字溢出友好截取功能</title>
</head>
<body>
<script>
 /**
  * JS实现中英文混合文字溢出友好截取功能
  * @param text 字符串
  * @param length 截取长度
  */
 var zfc = {};
 zfc.mixTextOverflow = function (text, length) {
  if (text.replace(/[\u4e00-\u9fa5]/g, 'aa').length <= length) {
   return text
  } else {
   var _length = 0
   var outputText = ''
   for (var i = 0; i < text.length; i++) {
    if (/[\u4e00-\u9fa5]/.test(text[i])) {
     _length += 2
    } else {
     _length += 1
    }
    if (_length > length) {
     break
    } else {
     outputText += text[i]
    }
   }
   return outputText + '...'
  }
 }
 console.log(zfc.mixTextOverflow('留学NEW SAT essay 题目分析和汇总', 12))
</script>
</body>
</html>

 输出结果:

JS实现中英文混合文字溢出友好截取功能

总结

以上所述是小编给大家介绍的JS实现中英文混合文字溢出友好截取功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
jQuery 白痴级入门教程
Nov 11 Javascript
jQuery中hide()方法用法实例
Dec 24 Javascript
《JavaScript DOM 编程艺术》读书笔记之DOM基础
Jan 09 Javascript
jquery 根据name名获取元素的value值
Feb 27 Javascript
js实现的Easy Tabs选项卡用法实例
Sep 06 Javascript
javascript每日必学之基础入门
Feb 16 Javascript
JS+HTML5实现的前端购物车功能插件实例【附demo源码下载】
Oct 17 Javascript
AngularJS过滤器filter用法分析
Dec 11 Javascript
详细介绍RxJS在Angular中的应用
Sep 23 Javascript
JavaScript定义函数的三种实现方法
Sep 23 Javascript
详解关闭令人抓狂的ESlint 语法检测配置方法
Oct 28 Javascript
使用preload预加载页面资源时注意事项
Feb 03 Javascript
JS实现图片上传多次上传同一张不生效的处理方法
Aug 06 #Javascript
JS插件clipboard.js实现一键复制粘贴功能
Dec 04 #Javascript
js实现图片上传并预览功能
Aug 06 #Javascript
JS解析后台返回的JSON格式数据实例
Aug 06 #Javascript
微信小程序网络封装(简单高效)
Aug 06 #Javascript
json字符串传到前台input的方法
Aug 06 #Javascript
bootstrap 路径导航 分页 进度条的实例代码
Aug 06 #Javascript
You might like
基于数据库的在线人数,日访问量等统计
2006/10/09 PHP
php列出一个目录下的所有文件的代码
2012/10/09 PHP
php中get_defined_constants函数用法实例分析
2015/05/12 PHP
php字符串比较函数用法小结(strcmp,strcasecmp,strnatcmp及strnatcasecmp)
2016/07/18 PHP
js小技巧--自动隐藏红叉叉
2007/08/13 Javascript
javascript文本模板用法实例
2015/07/31 Javascript
Jquery揭秘系列:ajax原生js实现详解(推荐)
2016/06/08 Javascript
项目实践一图片上传之form表单还是base64前端图片压缩(前端图片压缩)
2016/07/28 Javascript
如何使用Vuex+Vue.js构建单页应用
2016/10/27 Javascript
基于easyui checkbox 的一些操作处理方法
2017/07/10 Javascript
ReactJs实现树形结构的数据显示的组件的示例
2017/08/18 Javascript
JavaScript基础心法 深浅拷贝(浅拷贝和深拷贝)
2018/03/05 Javascript
JS中原始值和引用值的储存方式示例详解
2018/03/23 Javascript
vue 实现单选框设置默认选中值
2019/11/07 Javascript
彻底搞懂并解决vue-cli4中图片显示的问题实现
2020/08/31 Javascript
Vue2.x和Vue3.x的双向绑定原理详解
2020/11/05 Javascript
[01:38]完美世界DOTA2联赛(PWL)宣传片:第一站
2020/10/26 DOTA
跟老齐学Python之编写类之三子类
2014/10/11 Python
通过Pandas读取大文件的实例
2018/06/07 Python
python的常见矩阵运算(小结)
2019/08/07 Python
tesserocr与pytesseract模块的使用方法解析
2019/08/30 Python
python实现淘宝购物系统
2019/10/25 Python
VSCode中autopep8无法运行问题解决方案(提示Error: Command failed,usage)
2021/03/02 Python
html5中localStorage本地存储的简单使用
2017/06/16 HTML / CSS
canvas进阶之如何画出平滑的曲线
2018/10/15 HTML / CSS
教师应聘个人求职信
2013/12/10 职场文书
甜品蛋糕店创业计划书范文
2014/02/06 职场文书
护理助产毕业生的求职信
2014/03/02 职场文书
施工协议书范本
2014/04/22 职场文书
中层领导干部群众路线对照检查材料思想汇报
2014/10/02 职场文书
师德标兵事迹材料
2014/12/19 职场文书
小学班主任教育随笔
2015/08/15 职场文书
合理缓解职场压力,让你随时保持最佳状态!
2019/06/21 职场文书
vue-router中hash模式与history模式的区别
2021/06/23 Vue.js
vue中利用mqtt服务端实现即时通讯的步骤记录
2021/07/01 Vue.js
聊聊redis-dump工具安装问题
2022/01/18 Redis