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 动态添加表格行
Jun 22 Javascript
Mootools 1.2教程 输入过滤第二部分(字符串)
Sep 15 Javascript
jQuery 第二课 操作包装集元素代码
Mar 14 Javascript
JavaScript地图拖动功能SpryMap的简单实现
Jul 17 Javascript
node.js中的emitter.emit方法使用说明
Dec 10 Javascript
js网页滚动条滚动事件实例分析
May 05 Javascript
JavaScript淡入淡出渐变简单实例
Aug 06 Javascript
解析Vue2.0双向绑定实现原理
Feb 23 Javascript
vue2.0全局组件之pdf详解
Jun 26 Javascript
浅谈angular4生命周期钩子
Sep 05 Javascript
Vue 使用中的小技巧
Apr 26 Javascript
详解React中共享组件逻辑的三种方式
Feb 02 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+.htaccess实现全站静态HTML文件GZIP压缩传输(一)
2007/02/15 PHP
分享下PHP register_globals 值为on与off的理解
2013/09/26 PHP
PHP中Fatal error session_start()错误解决步骤
2014/08/05 PHP
phpnow php探针环境检测代码
2014/11/04 PHP
php连接oracle数据库的方法(测试成功)
2016/05/26 PHP
Jquery Ajax学习实例3 向WebService发出请求,调用方法返回数据
2010/03/16 Javascript
Javascript base64编码实现代码
2011/12/02 Javascript
JS中eval函数的使用示例
2013/07/21 Javascript
JS实现控制表格只显示行边框或者只显示列边框的方法
2015/03/31 Javascript
JavaScript中isPrototypeOf函数作用和使用实例
2015/06/01 Javascript
基于javascript实现按圆形排列DIV元素(三)
2016/12/02 Javascript
EditPlus中的正则表达式 实战(4)
2016/12/15 Javascript
Ajax跨域实现代码(后台jsp)
2017/01/21 Javascript
详解如何从零开始搭建Express+Vue开发环境
2018/07/17 Javascript
使用Vue调取接口,并渲染数据的示例代码
2019/10/28 Javascript
JS实现星星海特效
2019/12/24 Javascript
Angular进行简单单元测试的实现方法实例
2020/08/16 Javascript
python 将字符串转换成字典dict
2013/03/24 Python
对dataframe进行列相加,行相加的实例
2018/06/08 Python
PyQt5实现QLineEdit添加clicked信号的方法
2019/06/25 Python
Django后台admin的使用详解
2019/07/08 Python
对python中基于tcp协议的通信(数据传输)实例讲解
2019/07/22 Python
Python的3种运行方式:命令行窗口、Python解释器、IDLE的实现
2020/10/10 Python
PyCharm 2020.2.2 x64 下载并安装的详细教程
2020/10/15 Python
python利用opencv实现颜色检测
2021/02/23 Python
英国豪华家具和经典家居饰品购物网站:OKA
2020/06/05 全球购物
C语言中一个结构不能包含指向自己的指针吗
2012/05/25 面试题
应届毕业生的自我鉴定
2013/11/13 职场文书
水利水电建筑施工应届生求职信
2014/07/04 职场文书
立志成才演讲稿
2014/09/04 职场文书
学生上课说话检讨书
2014/10/25 职场文书
家电创业计划书
2019/08/05 职场文书
导游词之山东孔庙
2019/11/04 职场文书
yyds什么意思?90后已经听不懂00后讲话了……
2022/02/03 杂记
MySQL的表级锁,行级锁,排它锁和共享锁
2022/07/15 MySQL
win7配置本地ftp服务器的图文教程
2022/08/05 Servers