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 1.0.4 - New Wave Javascript(js源文件)
Jan 15 Javascript
一个不错的应用,用于提交获取文章内容,不推荐用
Mar 03 Javascript
De facto standard 世界上不可思议的事实标准
Aug 29 Javascript
js的一些常用方法小结
Jun 29 Javascript
使用firebug进行调试javascript的示例
Dec 16 Javascript
JS控制表单提交的方法
Jul 09 Javascript
js实现将选中值累加到文本框的方法
Aug 12 Javascript
js利用正则表达式检验输入内容是否为网址
Jul 05 Javascript
AngularJS实现单独作用域内的数据操作
Sep 05 Javascript
jQuery实现手机号正则验证输入及自动填充空格功能
Jan 02 jQuery
js使用Promise实现简单的Ajax缓存
Nov 14 Javascript
IE11下处理Promise及Vue的单项数据流问题
Jul 24 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
php结合ajax实现手机发红包的案例
2016/10/13 PHP
PHP实现Redis单据锁以及防止并发重复写入
2018/04/10 PHP
PHP检查端口是否可以被绑定的方法示例
2018/08/09 PHP
PHP反射基础知识回顾
2020/09/10 PHP
[原创]网络复制内容时常用的正则+editplus
2006/11/30 Javascript
修改jquery里的dialog对话框插件为框架页(iframe) 的方法
2010/09/14 Javascript
jQuery判断checkbox是否选中的小例子
2013/12/02 Javascript
如何实现textarea里的不同文本显示不同颜色
2014/01/20 Javascript
js实现连个数字相加而不是拼接的方法
2014/02/23 Javascript
jQuery控制的不同方向的滑动(向左、向右滑动等)
2014/07/18 Javascript
js实现鼠标经过时图片滚动停止的方法
2015/02/16 Javascript
JS简单获取及显示当前时间的方法
2016/08/03 Javascript
js实现鼠标拖动功能
2017/03/20 Javascript
jQuery插件之validation插件
2017/03/29 jQuery
vue拦截器实现统一token,并兼容IE9验证功能
2018/04/26 Javascript
Vuejs开发环境搭建及热更新【推荐】
2018/09/07 Javascript
Vue中的基础过渡动画及实现原理解析
2018/12/04 Javascript
vue+openlayers绘制省市边界线
2020/12/24 Vue.js
一起深入理解js中的事件对象
2021/02/06 Javascript
[00:30]塑造者的传承礼包-戴泽“暗影之焰”套装展示视频
2014/04/04 DOTA
Python实现的简单文件传输服务器和客户端
2015/04/08 Python
python爬虫入门教程--利用requests构建知乎API(三)
2017/05/25 Python
Django 项目通过加载不同env文件来区分不同环境
2020/02/17 Python
使用python实现微信小程序自动签到功能
2020/04/27 Python
TripAdvisor瑞典:全球领先的旅游网站
2017/12/11 全球购物
德国的各种媒体在线商店:Thalia.de(书籍、电子书、玩具等)
2020/10/08 全球购物
意大利顶级奢侈品电商:LUISAVIAROMA(支持中文)
2020/05/26 全球购物
学生会竞聘书范文
2014/03/31 职场文书
文明生主要事迹
2014/05/25 职场文书
幼儿园植树节活动总结
2014/07/04 职场文书
关于读书的演讲稿1000字
2014/08/27 职场文书
公司证明怎么写
2014/09/22 职场文书
大学生暑假实习总结
2015/07/13 职场文书
python和anaconda的区别
2022/05/06 Python
Pytorch中expand()的使用(扩展某个维度)
2022/07/15 Python
Spring boot实现上传文件到本地服务器
2022/08/14 Java/Android