zoukankan      html  css  js  c++  java
  • JS 获取字符串长度,截取字符串

    截取中英文字符串,一个汉字相当于2个字符,多余部分用...补全,比如要保留3个字:
    '你好'=>'你好'
    '你好啊啊'=>'你好啊...'
    '你好aaa'=>'你好aa...'
    '你hao啊'=>'你hao...' 等等

    代码如下:

    cutStr = (str, len) => {
      let charLength = 0;
      for (let i = 0; i < str.length; i++) {
        charLength += encodeURI(str.charAt(i)).length > 2 ? 1 : 0.5;
        if (charLength >= len) {
          const subLen = charLength === len ? i + 1 : i;
          return `${str.substr(0, subLen)}...`;
        }
      }
      return str;
    }
    

    升级版(常用):

    比如元素宽度可以放下4个中文字符,那么当str长度为4时,则不省略,代码如下:

    getLength = (str) => {
      let charLength = 0;
      for (let i = 0; i < str.length; i++){
        charLength += encodeURI(str.charAt(i)).length > 2 ? 1 : 0.5;
      }
      return charLength;
    }
    cutStr = (str, len) => {
      if(getLength(str)>len+1) {
        let charLength = 0;
        for (let i = 0; i < str.length; i++) {
          charLength += encodeURI(str.charAt(i)).length > 2 ? 1 : 0.5;
          if (charLength >= len) {
            const subLen = charLength === len ? i + 1 : i;
            return `${str.substr(0, subLen)}...`;
          }
        }
      }
      return str;
    }
    
  • 相关阅读:
    http简记
    socket简介
    iOS代理
    ai作图小技能
    按钮切换
    关于ie8背景图片的平铺
    关于文本省略
    关于html table样式
    阿里巴巴iconfont使用方法(超级详细)
    办公电脑安装虚拟机基本就绪
  • 原文地址:https://www.cnblogs.com/ZerlinM/p/14145320.html
Copyright © 2011-2022 走看看