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 相关文章推荐
ext combox 下拉框不出现自动提示,自动选中的解决方法
Feb 24 Javascript
jquery聚焦文本框与扩展文本框聚焦方法
Oct 12 Javascript
javascript标签在页面中的位置探讨
Apr 11 Javascript
Jquery实现图片左右自动滚动示例
Sep 25 Javascript
JS冒泡事件的快速解决方法
Dec 16 Javascript
javascript遍历控件实例详细解析
Jan 10 Javascript
javascript编写实用的省市选择器
Feb 12 Javascript
jquery事件绑定解绑机制源码解析
Sep 19 Javascript
bootstrap与Jquery UI 按钮样式冲突的解决办法
Sep 23 Javascript
常用的js方法合集
Mar 10 Javascript
微信js-sdk 录音功能的示例代码
Nov 01 Javascript
java遇到微信小程序 &quot;支付验证签名失败&quot; 问题解决
Dec 22 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脚本[带参数]的方法
2010/01/22 PHP
php 删除目录下N分钟前创建的所有文件的实现代码
2013/08/10 PHP
php中自定义函数dump查看数组信息类似var_dump
2014/01/27 PHP
简单介绍PHP的责任链编程模式
2015/08/11 PHP
使用WAMP搭建PHP本地开发环境
2017/05/10 PHP
Laravel框架实现定时Task Scheduling例子
2019/10/22 PHP
jquery 查找select ,并触发事件的实现代码
2011/03/30 Javascript
THREE.JS入门教程(5)你应当知道的十件事
2013/01/24 Javascript
JQuery中$.ajax()方法参数详解及应用
2013/12/12 Javascript
javascript页面加载完执行事件代码
2014/02/11 Javascript
window.returnValue使用方法示例介绍
2014/07/03 Javascript
AngularJS基础教程之简单介绍
2015/09/27 Javascript
原生js实现图片层叠轮播切换效果
2016/02/02 Javascript
AngularJS 表达式详解及实例代码
2016/09/14 Javascript
对象不支持indexOf属性或方法的解决方法(必看)
2017/05/28 Javascript
使用Dropzone.js上传的示例代码
2017/10/10 Javascript
ES6知识点整理之函数对象参数默认值及其解构应用示例
2019/04/17 Javascript
js实现简单的日历显示效果函数示例
2019/11/25 Javascript
taro 实现购物车逻辑的实例代码
2020/06/05 Javascript
vue实现路由懒加载的3种方法示例
2020/09/01 Javascript
[01:18:43]2014 DOTA2华西杯精英邀请赛5 24 iG VS DK
2014/05/25 DOTA
python正则匹配查询港澳通行证办理进度示例分享
2013/12/27 Python
详解用python实现基本的学生管理系统(文件存储版)(python3)
2019/04/25 Python
Python Django 封装分页成通用的模块详解
2019/08/21 Python
QML使用Python的函数过程解析
2019/09/26 Python
使用Python实现将多表分批次从数据库导出到Excel
2020/05/15 Python
Python lxml库的简单介绍及基本使用讲解
2020/12/22 Python
美国现代家具购物网站:LexMod
2019/01/09 全球购物
德国二手设计师时装和复古时装跳蚤市场:Mädchenflohmarkt
2020/11/09 全球购物
中专生自我鉴定范文
2014/02/02 职场文书
生产助理岗位职责
2014/06/18 职场文书
乡镇群众路线教育实践活动整改措施
2014/10/04 职场文书
工作作风整顿个人剖析材料
2014/10/11 职场文书
财务部岗位职责范本
2015/04/14 职场文书
springboot集成springCloud中gateway时启动报错的解决
2021/07/16 Java/Android
MySQL串行化隔离级别(间隙锁实现)
2022/06/16 MySQL