zoukankan      html  css  js  c++  java
  • 搬砖 js 读取带双引号的csv文件 雾中的

    function CSVToArray(strData, strDelimiter) {
        // Check to see if the delimiter is defined. If not,  
        // then default to comma.  
        strDelimiter = (strDelimiter || ",");
    
        // Create a regular expression to parse the CSV values.  
        var objPattern = new RegExp((
        // Delimiters.  
        "(\\" + strDelimiter + "|\\r?\\n|\\r|^)" +
    
        // Quoted fields.  
        "(?:\"([^\"]*(?:\"\"[^\"]*)*)\"|" +
    
        // Standard fields.  
        "([^\"\\" + strDelimiter + "\\r\\n]*))"), "gi");
    
        // Create an array to hold our data. Give the array  
        // a default empty first row.  
        var arrData = [ [] ];
    
        // Create an array to hold our individual pattern  
        // matching groups.  
        var arrMatches = null;
    
        // Keep looping over the regular expression matches  
        // until we can no longer find a match.  
        while (arrMatches = objPattern.exec(strData)) {
    
            // Get the delimiter that was found.  
            var strMatchedDelimiter = arrMatches[1];
    
            // Check to see if the given delimiter has a length  
            // (is not the start of string) and if it matches  
            // field delimiter. If id does not, then we know  
            // that this delimiter is a row delimiter.  
            if (strMatchedDelimiter.length && (strMatchedDelimiter != strDelimiter)) {
    
                // Since we have reached a new row of data,  
                // add an empty row to our data array.  
                arrData.push([]);
    
            }
    
            // Now that we have our delimiter out of the way,  
            // let's check to see which kind of value we  
            // captured (quoted or unquoted).  
            if (arrMatches[2]) {
    
                // We found a quoted value. When we capture  
                // this value, unescape any double quotes.  
                var strMatchedValue = arrMatches[2].replace(new RegExp("\"\"", "g"), "\"");
            } else {
                // We found a non-quoted value.  
                var strMatchedValue = arrMatches[3];
            }
    
            // Now that we have our value string, let's add  
            // it to the data array.  
            arrData[arrData.length - 1].push(strMatchedValue);
        }
    
        // Return the parsed data.  
        return (arrData);
    }
  • 相关阅读:
    SpringApplication类-1
    post与head注入
    sql_post注入
    渗透测试点线面合集
    渗透入侵溯源
    VMware 安装Tools 失败的问题:VGAuthService 启动失败
    Weblogic wls-wsat XMLDecoder 反序列化漏洞复现(CVE-2017-10271)
    web常见的中间件漏洞及复现
    XX点评H5字体映射
    python控制阿里云服务器开机,关机,重启
  • 原文地址:https://www.cnblogs.com/huanglisong/p/15628800.html
Copyright © 2011-2022 走看看