zoukankan      html  css  js  c++  java
  • js对字符串replace等操作

    面对这样的字符串data:   {1=[5, 3, 5, 11, 22, 33, 44, 55, 66, 77, 88, 99, 111, 111, 222, 333, 444],2=[6, 4, 5, 11, 22, 33, 44, 55, 66, 77, 88, 99, 111, 111, 222, 333, 444],3=[5, 5, 5, 11, 22, 33, 44, 55, 66, 77, 88, 99, 111, 111, 222, 333, 444],4=[4, 4, 5, 11, 22, 33, 44, 55, 66, 77, 88, 99, 111, 111, 222, 333, 444],5=[20, 16, 20, 11, 22, 33, 44, 55, 66, 77, 88, 99, 111, 111, 222, 333, 444], 10=[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}

    data从后台传过来本为map,可是到前台成了这样的格式,要运用到echarts上的line图需要做组装

    注:${chartResult}直接这样用后台传来的数据是无法展现的,为空,必须把它隐藏到一个input里取出,如<input id="chartResult" value="${chartResult}" hidden=true />

        var data = $("#chartResult").val();
        var data1 = data.substr(1,data.length-3);

    注:data1: 1=[5, 3, 5, 11, 22, 33, 44, 55, 66, 77, 88, 99, 111, 111, 222, 333, 444],2=[6, 4, 5, 11, 22, 33, 44, 55, 66, 77, 88, 99, 111, 111, 222, 333, 444],3=[5, 5, 5, 11, 22, 33, 44, 55, 66, 77, 88, 99, 111, 111, 222, 333, 444],4=[4, 4, 5, 11, 22, 33, 44, 55, 66, 77, 88, 99, 111, 111, 222, 333, 444],5=[20, 16, 20, 11, 22, 33, 44, 55, 66, 77, 88, 99, 111, 111, 222, 333, 444], 10=[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0


        var data2 = data1.split("=[").join('*').split("],").join('*');
        alert(data2);

    注:js只支持replace,一般只能替换第一个字符,不支持replaceAll,而str.split(replaceStr).join('')可实现全部替换

    注:data2: 1*5, 3, 5, 11, 22, 33, 44, 55, 66, 77, 88, 99, 111, 111, 222, 333, 444* 2*6, 4, 5, 11, 22, 33, 44, 55, 66, 77, 88, 99, 111, 111, 222, 333, 444* 3*5, 5, 5, 11, 22, 33, 44, 55, 66, 77, 88, 99, 111, 111, 222, 333, 444* 4*4, 4, 5, 11, 22, 33, 44, 55, 66, 77, 88, 99, 111, 111, 222, 333, 444* 5*20, 16, 20, 11, 22, 33, 44, 55, 66, 77, 88, 99, 111, 111, 222, 333, 444* 10*0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0


        var str = data2.split("*");

    注:这里不能用空格分隔,因为数字之间的逗号之后也有空格,最好用空格之外的符号如*


        var arr = [];
        for(var index in str){
            arr[index] = str[index];
        }

        var qtyNum = [];
        for(var i = 8;i<=24;i++){
           qtyNum.push("qty"+i);
        }
        alert(qtyNum);
        var leaveDcAndNoInDepotQty = []; //出分拣未入站单量
        var inDepotAndNoDeliveryQty = []; //入站未配送单量
        var outDepotAndNoReturnQty = []; //出站未回单单量
        var deliveryFinishedQty = []; //配送结束单量
        var totalQty = []; // 总单量
        

    注:arr[1],arr[3]等只是字符串,需要组装在list里面供line来使用


        var leaveStr = arr[1].split(",");
        for(var index in leaveStr){
            leaveDcAndNoInDepotQty.push(leaveStr[index]);
        }
        var inStr = arr[3].split(",");
        for(var index in inStr){
            inDepotAndNoDeliveryQty.push(inStr[index]);
        }
        var outStr = arr[5].split(",");
        for(var index in outStr){
            outDepotAndNoReturnQty.push(outStr[index]);
        }
        var deliveryStr = arr[7].split(",");
        for(var index in deliveryStr){
            deliveryFinishedQty.push(deliveryStr[index]);
        }
        var totalStr = arr[9].split(",");
        for(var index in totalStr){
            totalQty.push(totalStr[index]);
        }
        
        alert(leaveDcAndNoInDepotQty);

    5, 3, 5, 11, 22, 33, 44, 55, 66, 77, 88, 99, 111, 111, 222, 333, 444

  • 相关阅读:
    ORA-**,oracle 12c操作问题
    [MySQL] specified key was too long max key length is 767bytes
    ActiveMQ objecmessage 无法调用问题。
    关于IPMI的几个问题
    Linux平台上SQLite数据库教程(一)——终端使用篇
    0ra-12170 tns 连接超时
    iBatis应用--控制执行SQL时的超时时间
    深入理解JDBC的超时设置
    oracle关键字作为字段名使用方法
    Java中使用OpenSSL生成的RSA公私钥进行数据加解密
  • 原文地址:https://www.cnblogs.com/msr1019jingzi/p/5278499.html
Copyright © 2011-2022 走看看