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 相关文章推荐
javascript 客户端验证上传图片的大小(兼容IE和火狐)
Aug 15 Javascript
JavaScript XML和string相互转化实现代码
Jul 04 Javascript
js 分页全选或反选标识实现代码
Aug 09 Javascript
25个非常棒的jQuery滑块插件和教程小结
Sep 02 Javascript
jQuery实现鼠标划过展示大图的方法
Mar 09 Javascript
jquery悬浮提示框完整实例
Jan 13 Javascript
javascript之IE版本检测超简单方法
Aug 20 Javascript
node.js中的事件处理机制详解
Nov 26 Javascript
axios基本入门用法教程
Mar 25 Javascript
mpvue+vant app搭建微信小程序的方法步骤
Feb 11 Javascript
vue.js实现照片放大功能
Jun 23 Javascript
vue+springboot+element+vue-resource实现文件上传教程
Oct 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
使用 PHPMAILER 发送邮件实例应用
2012/11/07 PHP
浅析PHP开发规范
2018/02/05 PHP
TP5框架使用QueryList采集框架爬小说操作示例
2020/03/26 PHP
javascript中运用闭包和自执行函数解决大量的全局变量问题
2010/12/30 Javascript
Javascript合并表格中具有相同内容单元格示例
2013/08/11 Javascript
JS特效实现图片自动播放并可控的效果
2015/07/31 Javascript
JS基于Mootools实现的个性菜单效果代码
2015/10/21 Javascript
百度地图JavascriptApi Marker平滑移动及车头指向行径方向
2017/03/13 Javascript
javascript实现下雨效果
2017/03/27 Javascript
webpack开发跨域问题解决办法
2017/08/03 Javascript
JS实现的DOM插入节点操作示例
2018/04/04 Javascript
详解Vue项目在其他电脑npm run dev运行报错的解决方法
2018/10/29 Javascript
详解vue-cli3多环境打包配置
2019/03/28 Javascript
JavaScript数组去重的几种方法
2019/04/07 Javascript
微信网页登录逻辑与实现方法
2019/04/29 Javascript
小程序按钮避免多次调用接口和点击方案实现(不用showLoading)
2020/04/15 Javascript
[46:55]完美世界DOTA2联赛决赛 FTD vs Phoenix 第三场 11.08
2020/11/11 DOTA
Python模块学习 filecmp 文件比较
2012/08/27 Python
关于Python中浮点数精度处理的技巧总结
2017/08/10 Python
Python3 无重复字符的最长子串的实现
2019/10/08 Python
Django bulk_create()、update()与数据库事务的效率对比分析
2020/05/15 Python
Python如何实现机器人聊天
2020/09/10 Python
如何查看浏览器对html5的支持情况
2020/12/15 HTML / CSS
Feelunique德国官方网站:欧洲最大的在线美容零售商
2019/07/20 全球购物
Lookfantastic俄罗斯:欧洲在线化妆品零售商
2019/08/06 全球购物
Monica Vinader官网:英国轻奢珠宝品牌
2020/02/05 全球购物
Python里面如何实现tuple和list的转换
2012/06/13 面试题
矫正人员思想汇报
2014/01/08 职场文书
事业单位分类改革实施方案
2014/03/21 职场文书
抵押贷款承诺书
2014/05/30 职场文书
课外小组活动总结
2014/08/27 职场文书
工作经历证明书范文
2014/11/02 职场文书
见习报告格式范文
2014/11/08 职场文书
委托函范文
2015/01/29 职场文书
Mybatis-plus在项目中的简单应用
2021/07/01 Java/Android
MySQL派生表联表查询实战过程
2022/03/20 MySQL