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.autocomplete 支持中文输入(firefox)修正方法
Mar 10 Javascript
JavaScript异步编程:异步数据收集的具体方法
Aug 19 Javascript
JS不间断向上滚动效果代码
Dec 25 Javascript
JS简单操作select和dropdownlist实例
Nov 26 Javascript
JavaScript取得WEB安全颜色列表的方法
Jul 14 Javascript
JS实现常见的TAB、弹出层效果(TAB标签,斑马线,遮罩层等)
Oct 08 Javascript
详解Angular-cli生成组件修改css成less或sass的实例
Jul 27 Javascript
laravel5.4+vue+element简单搭建的示例代码
Aug 29 Javascript
JS字符串常用操作方法实例小结
Jun 24 Javascript
Vue数据绑定实例写法
Aug 06 Javascript
vuex实现数据状态持久化
Nov 11 Javascript
jQuery实现轮播图效果demo
Jan 11 jQuery
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+MSSQL分页的例子
2006/10/09 PHP
PHP无法访问远程mysql的问题分析及解决
2013/05/16 PHP
基于php socket(fsockopen)的应用实例分析
2013/06/02 PHP
php获取百度收录、百度热词及百度快照的方法
2015/04/02 PHP
PHP常见数组函数用法小结
2016/03/21 PHP
详解PHP的Yii框架中自带的前端资源包的使用
2016/03/31 PHP
php实现的简单多进程服务器类完整示例
2020/02/01 PHP
php设计模式之观察者模式实例详解【星际争霸游戏案例】
2020/03/30 PHP
浅谈php常用的7大框架的优缺点
2020/07/20 PHP
JS 遮照层实现代码
2010/03/31 Javascript
基于jquery的气泡提示效果
2010/05/31 Javascript
原来Jquery.load的方法可以一直load下去
2011/03/28 Javascript
JavaScript实现拼音排序的方法
2012/11/20 Javascript
jQuery trigger()方法用法介绍
2015/01/13 Javascript
javascript相关事件的几个概念
2015/05/21 Javascript
jQuery替换节点用法示例(使用replaceWith方法)
2016/09/08 Javascript
使用Angular.js开发的注意事项
2016/10/19 Javascript
微信小程序 下拉列表的实现实例代码
2017/03/08 Javascript
element-ui中dialog弹窗关闭按钮失效的解决
2020/09/22 Javascript
用JavaScript实现贪吃蛇游戏
2020/10/23 Javascript
[01:29:31]VP VS VG Supermajor小组赛胜者组第二轮 BO3第一场 6.2
2018/06/03 DOTA
动感网页相册 python编写简单文件夹内图片浏览工具
2016/08/17 Python
Python读取图片属性信息的实现方法
2016/09/11 Python
python机器学习之神经网络(三)
2017/12/20 Python
python按综合、销量排序抓取100页的淘宝商品列表信息
2018/02/24 Python
Python作用域与名字空间原理详解
2020/03/21 Python
python给list排序的简单方法
2020/12/10 Python
CSS3 please 跨浏览器的CSS3产生器
2010/03/14 HTML / CSS
个人简历的自荐信
2013/10/23 职场文书
党员干部一句话承诺
2014/05/30 职场文书
本科毕业生自荐信
2014/06/02 职场文书
商场开业庆典策划方案
2014/06/02 职场文书
小学学习雷锋活动总结
2014/07/03 职场文书
颂军魂爱军营演讲稿
2014/09/13 职场文书
2015小学教师年度工作总结
2015/05/12 职场文书
一篇文章带你学习Mybatis-Plus(新手入门)
2021/08/02 Java/Android