JS实现中英文混合文字溢出友好截取功能

发布时间:2020-08-28 18:21:10

来源:脚本之家

阅读:73

作者:抖音

在显示字符串的时候,避免字符串过长往往会对字符串进行截取操作,通常会用到js的 substr 或者 substring方法, 以及 字符串的length属性

substr() 方法可在字符串中抽取从 start 下标开始的指定数目的字符。

substring() 方法用于提取字符串中介于两个指定下标之间的字符。

对于非中文的字符串处理是很简单的,但是中文字符的 length  属性值 是1  而不是 2 ,所以处理就不是很友好了。

例如  你有一个字符串   'abcdefg' 和   '我爱中华人民共和国'

你只想显示五位长度,往往会这样操作  str = str.substr(0, 5);

但是 'abcde '与 '我爱中华人' 所占的宽度是不同的,因为中文往往占2字节, 为了显示效果更好, 特封装如下函数:

JS实现中英文混合文字溢出友好截取功能

/**

* 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))

输出结果:

总结

以上所述是小编给大家介绍的JS实现中英文混合文字溢出友好截取功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对亿速云网站的支持!

中英文混合html加密,JS实现中英文混合文字溢出友好截取功能相关推荐

  1. 精灵混合加密系统_数据安全——混合云的数据备份

    组织在使用混合云进行备份时,可以利用云计算的可扩展性和安全性,而不会影响其内部部署的控制. 混合云是一种复杂的生态系统,可以利用来自公共云和私有云的组件以及内部部署资源.组织出于各种原因实施混合云策略 ...

  2. java,url长链接生成短链接,短链接生成器,自定义字符串,对字符串md5混合KEY加密,根据短链接获得key值,不重复的随机数,不重复的随机字符串...

    java,url长链接生成短链接,短链接生成器,自定义字符串,对字符串md5混合KEY加密,根据短链接获得key值,不重复的随机数,不重复的随机字符串 1 package com.zdz.test; ...

  3. JS区分中英文字符的两种方法

    JS区分中英文字符的两种方法: 正则和charCodeAt()方法. 正则无疑是最强大的判断各种条件的方法, 最近也在研习它, 虽然枯燥, 但仍有乐趣. 用它来判断一个双字节的中文字符也是轻而易举地. ...

  4. js实现中英文切换(jquery.i18n.js)

    jquery.i18n.js 实现中英文切换 方法 由于在公司官网所用到中英文切换功能,代码时js.jq写的.个人简单记录一下过程: 用的方法是 jquery.i18n.js. jquery.i18n ...

  5. 【联邦学习实战】基于同态加密和差分隐私混合加密机制的FedAvg

    联邦学习实战--基于同态加密和差分隐私混合加密机制的FedAvg 前言 1. FedAvg 1.1 getData.py 1.2 Models.py 1.3 client.py 1.4 server. ...

  6. 超简单的混合开发入门 JS实现安卓Listview

    最近在开发一款报表引擎,里面就需要我会写js做一些简单的混合开发,刚开始学习混合开发的前两天是最郁闷的,毕竟这是一门新的语言,但是还是硬着头皮往上搞了,到第二天的时候就把支持懒加载的Listview倒 ...

  7. Vue.js 2.0 混合

    Vue.js 2.0 混合基础 混合是一种灵活的分布式复用 Vue 组件的方式.混合对象可以包含任意组件选项.以组件使用混合对象时,所有混合对象的选项将被混入该组件本身的选项. 例子: // 定义一个 ...

  8. 混合云架构,如何实现混合云落地?(上)

    混合云架构,如何实现混合云落地?(上) 云计算在2016年有了极大的增长.一方面,AWS.阿里云等大型公有云厂商的云计算收入呈爆发式增长且绝对值数据可观:另一方面,通过持续市场培育,云计算的价值逐步被 ...

  9. 混合云的基本介绍,混合云主要有什么优缺点?

    什么是混合云? 顾名思义,混合云是一种计算环境,其中两种不同类型的技术基础设施(通常称为公共云和私有云)协同工作,使组织能够利用场外和场内计算的特定优势. 微软公司在其网站上以这种方式总结了混合云:& ...

最新文章

  1. python装饰设备_Python: 装饰器的小例子
  2. eclipse中也可以恢复删除的文件
  3. 《SAS编程与数据挖掘商业案例》学习笔记之九
  4. Spring自学日志06(Aop)
  5. 始终将文件夹放在 Mac 上 Finder 顶部的方法
  6. 深度学习_算法工程师 6 万字总结算法面试中的深度学习基础问题
  7. mysql查询一张表中一共有多少条数据
  8. lambda表达式学习使用实例
  9. Java单链表头插法和尾插法以及增删改查方法
  10. Java Ajax技术详解:(一)Ajax 简介
  11. 【深度学习】textCNN论文与原理
  12. django使用rest快速实现前后端分离登录注册
  13. 【厚积薄发】Crunch压缩图片的AssetBundle打包
  14. 【每日面试】2021北京联通Java一面
  15. DDK开发介绍_自我学习
  16. Unity_UIWidgets新手入门
  17. mui框架手机端APP开发
  18. 解决猫眼自定义字体的问题-获取影院实时电影拍片或实时票房等
  19. html css3 纸张,CSS3 设计巧妙的纸张褶起动效
  20. 编译安装python3.6

热门文章

  1. jQuery放大镜实现
  2. 究竟如何进行数据分析?
  3. ribbon 收起 最小化 导航条 选项卡 navBarControl 隐藏
  4. c语言十进制转换八进制和十六进制
  5. 网页设计(前端)学习笔记
  6. 启动VS2005调试器时出错: 绑定句柄无效
  7. markdown换行功能
  8. 我的研究生论文的小总结 (以多标签方向为例)
  9. CSS 文字的圆圈背景
  10. 器具传感器行业调研报告 - 市场现状分析与发展前景预测