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 parseInt与Number函数的区别
Jan 21 Javascript
javascript限制用户只能输汉字中文的方法
Nov 20 Javascript
node.js中的fs.rmdir方法使用说明
Dec 16 Javascript
JS基于面向对象实现的放烟花效果
May 07 Javascript
JS实战篇之收缩菜单表单布局
Dec 10 Javascript
Angular的自定义指令以及实例
Dec 26 Javascript
使用vue-router设置每个页面的title方法
Feb 11 Javascript
vue2.0 根据状态值进行样式的改变展示方法
Mar 13 Javascript
讲解vue-router之什么是编程式路由
May 28 Javascript
ES6基础之解构赋值(destructuring assignment)
Feb 21 Javascript
优雅的将ElementUI表格变身成树形表格的方法步骤
Apr 11 Javascript
详解如何解决使用JSON.stringify时遇到的循环引用问题
Mar 23 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
安装APACHE
2007/01/15 PHP
解析yahoo邮件用phpmailer发送的实例
2013/06/24 PHP
PHP模型Model类封装数据库操作示例
2019/03/14 PHP
Thinkphp 框架扩展之标签库驱动原理与用法分析
2020/04/23 PHP
javascript中巧用“闭包”实现程序的暂停执行功能
2007/04/04 Javascript
JSQL 基于客户端的成绩统计实现方法
2010/05/05 Javascript
JS中setTimeout()的用法详解
2013/04/14 Javascript
基于JavaScript 数据类型之Boolean类型分析介绍
2013/04/19 Javascript
Jsonp 关键字详解及json和jsonp的区别,ajax和jsonp的区别
2015/12/30 Javascript
微信小程序 常用工具类详解及实例
2017/02/15 Javascript
在百度搜索结果中去除掉一些网站的资料(通过js控制不让显示)
2017/05/02 Javascript
基于js原生和ajax的get和post方法以及jsonp的原生写法实例
2017/10/16 Javascript
vue.js实例对象+组件树的详细介绍
2017/10/20 Javascript
javascript实现最长公共子序列实例代码
2018/02/05 Javascript
Vue-cropper 图片裁剪的基本原理及思路讲解
2018/04/17 Javascript
JS中实现隐藏部分姓名或者电话号码的代码
2018/07/17 Javascript
vue路由事件beforeRouteLeave及组件内定时器的清除方法
2018/09/29 Javascript
vue框架下部署上线后刷新报404问题的解决方案(推荐)
2019/04/03 Javascript
详解无限滚动插件vue-infinite-scroll源码解析
2019/05/12 Javascript
Vue对象赋值视图不更新问题及解决方法
2019/06/03 Javascript
layui原生表单验证的实例
2019/09/09 Javascript
SSM+layUI 根据登录信息显示不同的页面方法
2019/09/20 Javascript
Vue项目环境搭建详细总结
2019/09/26 Javascript
vue下canvas裁剪图片实例讲解
2020/04/16 Javascript
[02:51]DOTA2英雄基础教程 风暴之灵
2013/12/23 DOTA
python登录QQ邮箱发信的实现代码
2013/02/10 Python
python清除指定目录内所有文件中script的方法
2015/06/30 Python
Python 爬虫学习笔记之多线程爬虫
2016/09/21 Python
Python中turtle库的使用实例
2019/09/09 Python
Clos19英国:高档香槟、葡萄酒和烈酒在线购物平台
2020/07/10 全球购物
大专毕业生自我鉴定
2013/11/21 职场文书
创业培训计划书
2014/05/03 职场文书
大学生青年志愿者活动总结
2015/05/06 职场文书
大国崛起英国观后感
2015/06/02 职场文书
音乐课《小猫钓鱼》教学反思
2016/02/18 职场文书
Python anaconda安装库命令详解
2021/10/16 Python