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自定义图片热区效果
Jul 21 Javascript
js获取指定日期前后的日期代码
Aug 20 Javascript
jQuery中的pushStack实现原理和应用实例
Feb 03 Javascript
JS实现仿中关村论坛评分后弹出提示效果的方法
Feb 23 Javascript
jQuery添加删除DOM元素方法详解
Jan 18 Javascript
jquery动态添加文本并获取值的方法
Oct 12 Javascript
使用BootStrap进行轮播图的制作
Jan 06 Javascript
基于Bootstrap框架实现图片切换
Mar 10 Javascript
详解如何在angular2中获取节点
Nov 23 Javascript
基于JavaScript canvas绘制贝塞尔曲线
Dec 25 Javascript
angular组件间通讯的实现方法示例
May 07 Javascript
vue 里面的 $forceUpdate() 强制实例重新渲染操作
Sep 21 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的类 功能齐全的发送邮件类
2006/10/09 PHP
PHP与C#分别格式化文件大小的代码
2011/05/14 PHP
基于PHP常用字符串的总结(待续)
2013/06/07 PHP
php数组排序usort、uksort与sort函数用法
2014/11/17 PHP
thinkPHP中volist标签用法示例
2016/12/06 PHP
jquery怎样实现ajax联动框(二)
2013/03/08 Javascript
jquery对象和DOM对象的区别介绍
2013/08/09 Javascript
JavaScript创建对象的写法
2013/08/29 Javascript
jquery ajax请求方式与提示用户正在处理请稍等
2014/09/01 Javascript
超级给力的JavaScript的React框架入门教程
2015/07/02 Javascript
JavaScript的History API使搜索引擎抓取AJAX内容
2015/12/07 Javascript
javascript html5移动端轻松实现文件上传
2020/03/27 Javascript
Bootstrap每天必学之标签页(Tab)插件
2020/08/09 Javascript
Js 获取、判断浏览器版本信息的简单方法
2016/08/08 Javascript
node中使用log4js4.x版本记录日志的方法
2019/08/20 Javascript
Vue分页效果与购物车功能
2019/12/13 Javascript
JavaScript 实现轮播图特效的示例
2020/11/05 Javascript
[01:37]DOTA2超级联赛专访ChuaN 传奇般的电竞之路
2013/06/19 DOTA
Python统计列表中的重复项出现的次数的方法
2014/08/18 Python
python字符串str和字节数组相互转化方法
2017/03/18 Python
Python遍历numpy数组的实例
2018/04/04 Python
python实现excel读写数据
2021/03/02 Python
PyQt5根据控件Id获取控件对象的方法
2019/06/25 Python
在python image 中安装中文字体的实现方法
2019/08/22 Python
HTML5 Canvas锯齿图代码实例
2014/04/10 HTML / CSS
HTML5添加鼠标悬浮音响效果不使用FLASH
2014/04/23 HTML / CSS
西安启天科技有限公司网络工程师面试题笔试题
2016/06/12 面试题
预备党员综合考察材料
2014/05/31 职场文书
课内比教学心得体会
2014/09/09 职场文书
学雷锋团日活动总结
2015/05/06 职场文书
初中政教处工作总结
2015/08/12 职场文书
《从现在开始》教学反思
2016/02/16 职场文书
小学信息技术教学反思
2016/02/16 职场文书
Feign调用传输文件异常的解决
2021/06/24 Java/Android
vue项目多环境配置(.env)的实现
2021/07/21 Vue.js
python+pytest接口自动化之token关联登录的实现
2022/04/06 Python