zoukankan      html  css  js  c++  java
  • 获取字符串字节长度及根据字节截取

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

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

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

  • 相关阅读:
    Redis集群搭建&访问
    Redis集群功能概述
    Redis多机功能之Sentinel
    Redis单机版安装与部署
    Redis多机功能之复制
    Redis多机功能介绍
    Hadoop JobHistory
    Hive基础之COALESCE用法
    junit组合模式应用
    Emmet
  • 原文地址:https://www.cnblogs.com/dropInInt/p/14700328.html
Copyright © 2011-2022 走看看