将字符串按长度截取成数组

     /**
	 * @param string text 为传入的文本
	 * @param int num 为单行显示的字节长度
	 * @return array 
	 */
        function textByteLength(text, num) {

            let strLength = 0;
            let rows = 1;
            let str = 0;
            let arr = [];
            for (let j = 0; j < text.length; j++) {
                // console.log(text.charCodeAt(j));
                if (text.charCodeAt(j) > 255) {
                    // console.log('if');
                    strLength += 2;
                    if (strLength > rows * num) {
                        // console.log(3333);
                        // strLength++;
                        console.log(strLength);
                        arr.push(text.slice(str, j));
                        str = j;
                        rows++;
                    }
                } else {
                    // console.log('else');
                    strLength++;
                    if (strLength > rows * num) {
                        arr.push(text.slice(str, j));
                        str = j;
                        rows++;
                    }
                }
            }
            arr.push(text.slice(str, text.length));
            // return [strLength, arr, rows] //  [处理文字的总字节长度,每行显示内容的数组,行数]
            console.log(strLength);   // 65
            console.log(arr);  // Array(4) [ "今天又到了星期五,明", "天就是周六了,后天就是", "周日了,大后天就是周", "一哈哈" ]
            console.log(rows);  // 4
        }

        textByteLength('今天又到了星期五,明天就是周六了,后天就是周日了,大后天就是周一哈哈',20)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是来写bug的吧

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值