csv文件格式化数组

  • // This will parse a delimited string into an array of
  • // arrays. The default delimiter is the comma, but this
  • // can be overriden in the second argument.
  • 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 );
  • }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值