• js 将一段文字按照固定的字数分割成多行


    如题,有这种需求,就记录一下以便以后拿来用,具体用到string的slice函数,缺点是没有根据中英文去做分割,比如:《要抽取的片断的起始下标。如果是负数,则该参数规定的是从字符串的尾部开始算起的位置。也就是说,-1 指字符串的最后一个字符,-2 指倒数第二个字符,以此类推。》这段话汉字占两个空格,但是数字只占一个空格,中文标点占两个,但英文标点只占一个,分割完之后可能会有长短不齐的现象。废话不多说,直接上代码吧

    var str = "要抽取的片断的起始下标。如果是负数,则该参数规定的是从字符串的尾部开始算起的位置。也就是说,-1 指字符串的最后一个字符,-2 指倒数第二个字符,以此类推。";
    var step = 10; // 10个字符一行
    var remainder = str.length % step; //对字符串的长度取行的余数
    var n = (str.length - remainder) / step; //截完一共多少行(如果余数大于1,则共有n+1行
    var newStr = ""
    for(var i = 0; i < n; i++){
        newStr += str.slice(i*step,(i+1)*step) + "
    ";
    }
    if(remainder > 0){
        newStr += str.slice(n*step) + "
    "
    }

    当然也可以把接收器改成数组 newArr = [] 

    然后遍历时往数组中push就好了,另外也可以封装成一个函数,将字符串,长度,接收变量传到函数中

    function breakStr(str,step,receiver){
        //str 需要截取的字符串
        //step 步长
        //receiver 接收器,可以是字符串,也可以是数组
        var remainder = str.length % step;
        var n = (str.length - remainder) / step;
        var type = typeof receiver.toLowerCase();
        for(var i = 0;i < n;i++){
            if(type == 'string'){
                receiver += str.slice( i * step,( i + 1) * step) + "
    ";
             }else{
                receiver.push(str.slice( i * step,( i + 1) * step));
            }
        }
        return receiver;
    }
  • 相关阅读:
    react入门教程 |菜鸟教程
    React 组件构造方法: ES5 (createClass) 还是 ES6 (class)?
    代码设置LinearLayout的高度
    android调用webservice发送header身份验证不成功
    GridView中item获得焦点放大缩小
    关于url从服务器上获取图片资源
    Android中删除照片操作
    android采用Ksoap2访问webservice,AndroidHttpTransport call方法异常
    创建新的Android项目,Eclipse自动创建的appcompat内容
    Windroy、Windroye、Bluestacks运行Android实现原理
  • 原文地址:https://www.cnblogs.com/dayin1/p/15019228.html
Copyright © 2020-2023  润新知