判断字符串长度的方法(中文2个字符,英文1个字符)

//判断字符串长度的方法(中文2个字符,英文1个字符)

// export function getCharCodeLength(str:any) {

//   const len = [...str].reduce((pre, cur) => {

//     return pre + (cur.charCodeAt() > 255 ? 2 : 1);

//   }, 0);

//   return len;

// }

//判断字符串长度的方法(中文2个字符,英文1个字符)

export function getCharCodeLength(str:any,len:number){

  let str_length = 0;

  let str_len = 0;

  let str_cut = new String();

  str_len = str.length;

   for(let i = 0;i<str_len;i++){

      let a = str.charAt(i);

       str_length++;

       if(escape(a).length > 4){

           //中文字符的长度经编码之后大于4

           str_length++;

       }

       str_cut = str_cut.concat(a);

       if(str_length>=len){

     //达到目标长度,即为字符串加上省略号并返回

          str_cut = str_cut.concat("...");

          return str_cut;

       }

   }

  //如果字符串长度小于需要裁切的长度,直接返回

   if(str_length<len){

    return  str;

   }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值