首页 > 其他分享 >JS实现中英文混合文字友好截取功能

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

时间:2023-07-05 10:44:57浏览次数:32  
标签:中英文 text 截取 JS length zfc

汉字和数字混合时,按照长度进行字符截取。

 

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

 

标签:中英文,text,截取,JS,length,zfc
From: https://www.cnblogs.com/fnym/p/17527883.html

相关文章

  • 在线JS代码混淆加密工具真的能实现JS代码加密吗?
    很多时候我们网站的JS代码都有被拷贝的风险,于是JS代码混淆加密这种能避免大部分复制的方法便出现了,可以对自己的JS加密,加密后达到安全的作用,不用担心自己辛辛苦苦写的JS给别人抄袭了。然而一段JS代码要是自己去编辑加密的话就有点费时费力了,目前加密工具也非常多,在线JS代码混淆......
  • vue项目报错:Node.js v18.16.1 error Command failed with exit code 1.
    原因:把node升级到了最新的长期支持版18.16.1,结果运行vue项目启动失败,报错如下:试了各种办法都解决不了,后面只能把node降级到16.20.1运行项目又可以启动了......
  • python解析json数据
    python解析json数据demodata={"name":"John","age":30,"hobbies":["reading","running","swimming"],"scores":[85,90,95]}forkey,valueindata.items()......
  • NestJs NestFactory.create()方法的可选的配置对象
    NestJs是一个用于构建高效、可扩展和可维护的Nodejs应用程序的框架。NestFactory是nestjs框架中的一个重要类,第一个参数接受一个根模块作为参数,第二个参数是一个可选的配置对象,用于配置应用程序实例的行为和属性。这个配置对象可以包含如下属性:logger:指定自定义的日志记录器,用于......
  • 重写JSON.stringify与JSON.parse使其支持解析function类型
    constJSONStringify=(option)=>{returnJSON.stringify(option,(key,val)=>{//处理函数丢失问题if(typeofval==='function'){return`${val}`;}//处理undefined丢失问......
  • 本地搭建Threejs
    目录1、首先进入threejs库GitHub地址:2、下载完整代码3、项目文件解压缩4、命令行安装依赖5、启动项目6、文档目录介绍​ 因为Three.js官网是国外的服务器,所以为了方便学习和快速的查阅文档,我们可以自己搭建Three.js官网和文档,方便随时查看案例和文档内容进行学习。1、首先进......
  • threejs基础
    一、学习收获1、OpenGL、WebGL、Canvas、Three.js四者关系2、Three.js三大要素3、Three.js基本要素4、Three.js相关插件的使用5、使用Three.js展示3D几何体效果二、主要内容:1、Three.js前提须知讲到Three.js,就需要先说一下OpenGL和WebGL,OpenGL是一个跨平台的3D/2D......
  • 如何实现CesiumJS的视效升级?
    CesiumJS作为一款强大的地理可视化引擎,为我们提供了丰富的地球数据可视化和交互展示的能力。然而,随着用户需求的不断增加和技术的不断进步,如何进一步提升CesiumJS的视觉效果成为了一个重要的问题。首先,为了实现CesiumJS视觉效果的升级,我们可以考虑优化地球表面的渲染和光照效果。......
  • jsp+servlet
    1.jsp的执行过程步骤一:翻译(jsp文件翻译成java文件)步骤二:编译(java文件编译成class文件)步骤三:执行(执行class(字节码)文件)2.在jsp中实现日期输出在网页上<%SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-ddhh:mm:ss");Stringdatenow=sdf.format(newDate())%><%=da......
  • js正则表达式replace中参数为$1、$2、...、$99、函数等用法以及常用的正则表达式
    js正则表达式replace中参数为$1、$2、...、$99、函数等用法以及常用的正则表达式原文链接:https://blog.csdn.net/sxww_zyt/article/details/130258920示例:时间格式进行转换显示。//202007011927122020-07-0119:27:12getdateString(datastr){letpattern=/(\d{......