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 相关文章推荐
ajax 文件上传应用简单实现
Mar 03 Javascript
js中function()使用方法
Dec 24 Javascript
js点击列表文字对应该行显示背景颜色的实现代码
Aug 05 Javascript
基于bootstrap插件实现autocomplete自动完成表单
May 07 Javascript
JavaScript使用键盘输入控制实现数字验证功能
Aug 19 Javascript
js创建对象几种方式的优缺点对比
Sep 28 Javascript
微信小程序表单验证错误提示效果
May 19 Javascript
微信小程序之滚动视图容器的实现方法
Sep 26 Javascript
vue-lazyload图片延迟加载插件的实例讲解
Feb 09 Javascript
详解react阻止无效重渲染的多种方式
Dec 11 Javascript
vue + element-ui的分页问题实现
Dec 17 Javascript
vue项目搭建以及全家桶的使用详细教程(小结)
Dec 19 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安装为Apache DSO
2006/10/09 PHP
php将url地址转化为完整的a标签链接代码(php为url地址添加a标签)
2014/01/17 PHP
PHP、Nginx、Apache中禁止网页被iframe引用的方法
2020/10/01 PHP
php数据结构之顺序链表与链式线性表示例
2018/01/22 PHP
对于Laravel 5.5核心架构的深入理解
2018/02/22 PHP
解读IE和firefox下JScript和HREF的执行顺序
2008/01/12 Javascript
JavaScript 事件记录使用说明
2009/10/20 Javascript
jquery 模拟雅虎首页的点击对话框效果
2010/04/11 Javascript
js 定时器setTimeout无法调用局部变量的解决办法
2013/11/28 Javascript
node.js中的buffer.slice方法使用说明
2014/12/10 Javascript
JavaScript函数使用的基本教程
2015/06/04 Javascript
javascript解析xml实现省市县三级联动的方法
2015/07/25 Javascript
javascript创建动态表单的方法
2015/07/25 Javascript
Javascript 实现匿名递归的实例代码
2017/05/25 Javascript
vue使用drag与drop实现拖拽的示例代码
2017/09/07 Javascript
新手vue构建单页面应用实例代码
2017/09/18 Javascript
Vue.js实现表格渲染的方法
2018/09/07 Javascript
使用layui+ajax实现简单的菜单权限管理及排序的方法
2019/09/10 Javascript
layui写后台表格思路和赋值用法详解
2019/11/14 Javascript
学习 Vue.js 遇到的那些坑
2021/02/02 Vue.js
[01:07:17]EG vs Optic Supermajor 败者组 BO3 第一场 6.6
2018/06/07 DOTA
Python设计足球联赛赛程表程序的思路与简单实现示例
2016/06/28 Python
python分析作业提交情况
2017/11/22 Python
在Django中输出matplotlib生成的图片方法
2018/05/24 Python
python 文件转成16进制数组的实例
2018/07/09 Python
Python assert语句的简单使用示例
2019/07/28 Python
几个CSS3的flex弹性盒模型布局的简单例子演示
2016/05/12 HTML / CSS
英国剑桥包官网:The Cambridge Satchel Company
2016/08/01 全球购物
世界上最大的冷却器制造商:Igloo Coolers
2019/07/23 全球购物
省优秀教师事迹材料
2014/01/30 职场文书
乡镇安全生产目标责任书
2014/07/23 职场文书
法定授权委托证明书
2014/09/27 职场文书
给上级领导的感谢信
2015/01/22 职场文书
党员公开承诺书2016
2016/03/24 职场文书
工作自我评价范文
2019/03/21 职场文书
JS一分钟在github+Jekyll的博客中添加访问量功能的实现
2021/04/03 Javascript