js进行字符串的字节判断和截取

需求:

        编写一个截取字符串的函数,输入为一个字符串和一个字节数,输出为按字节截取的字符串。

思路:

一、字节数判断

1、定义一个变量记录字符串字节数

2、利用正则筛选汉字和大写字母

3、将字符串转为数组进行遍历查询,并且将各个字符的字节数进行累加

4、返回字符串的字节数


二、字符串按照字节数截取

思路基本和判断一样,增加一个判断长度截取,并且返回新的字符串即可。


//字节判断(中文2,英文小写1,大写1.5)
function fontLenth(thisVal){
  var thisVLength=0;
  var thisA=thisVal.split('');
  var rep=/[^\x00-\xff]/;
  var repABC=/^[A-Z]+$/;
  for(var i=0;i<thisA.length;i++){
    if(rep.test(thisA[i])){
      thisVLength+=2;
    }else if(repABC.test(thisA[i])){
      thisVLength+=1.5;
    }else{
        thisVLength++;
    }
  }
  return thisVLength;
}


//字节截取(中文2,英文小写1,大写1.5)
function fontCut(thisVal,thisCutLength){
  var thisVlength=0;
  var thisB=[];
  var thisA=thisVal.split('');
  var rep=/[^\x00-\xff]/;
  var repABC=/^[A-Z]+$/;
  for(var i=0;i<thisA.length;i++){
    if(rep.test(thisA[i])){
      thisVlength+=2;
    }else if(repABC.test(thisA[i])){
      thisVlength+=1.5;
    }else{
        thisVlength++;
    }
    if(thisVlength>thisCutLength){
      return thisB.join('');
    }else{
      thisB.push(thisA[i]);
    }
  }
  return thisB.join('');
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值