码迷,mamicode.com
首页 > 其他好文 > 详细

获取字符串字节长度及根据字节截取

时间:2021-04-26 13:50:14      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:class   需要   dex   计数   fun   sub   一个   参数   break   

背景:假设现在有两个字符串

let str="王者农药",str2 = "wzny";
console.log(str.length) // 4
console.log(str2.length) // 4

两个字符串的长度是一直的,但是str和str2在页面上占据的位置大小是不一致的;

1.获取字符串的字节长度

function strByte(str) {
    return str.replace(/[^\x00-\xff]/g,"01").length
}

2.根据自身所需要的字节长度数去截取字符串

function getByteStr(str,byteLen) { // 第一个参数字符串本身,第二个参数所需截取字节长度
    //将字符串转为数组
    const byteArr = str.split(‘‘),reg = /[^\x00-\xff]/;
    // 设置计数
    let byteNum = 0,spliceIndex = 0;
    for(var let i = 0;i < byteArr.length; i++){
        reg.test(byteArr[i]) ? byteNum+= 2 : byteNum+= 1;
        if (byteNum > byteLen) {
            spliceIndex = i
            break;
        }
    }
    const substrStart = str.substr(0, spliceIndex)
    const substrEnd = str.substr(spliceIndex, str.length)
    return {substrStart: substrStart, substrEnd: substrEnd}
}

结尾:通过获取当前字符串的字节数量去截取字符串可以保证不同的字符串占位一致

获取字符串字节长度及根据字节截取

标签:class   需要   dex   计数   fun   sub   一个   参数   break   

原文地址:https://www.cnblogs.com/dropInInt/p/14700328.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!