Skip to content

Commit 60ad382

Browse files
committed
update browser version
1 parent 0b30954 commit 60ad382

2 files changed

Lines changed: 32 additions & 26 deletions

File tree

dist/csvtojson.js

Lines changed: 29 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1034,7 +1034,20 @@ function getDelimiter(rowStr,param) {
10341034
});
10351035
return rtn;
10361036
}
1037-
1037+
function isQuoteOpen(str,param){
1038+
var quote=param.quote;
1039+
return str[0] === quote && (str[1]!==quote || str[1]===quote && (str[2] === quote || str.length ===2));
1040+
}
1041+
function isQuoteClose(str,param){
1042+
var quote=param.quote;
1043+
var count=0;
1044+
var idx=str.length-1;
1045+
while (str[idx] === quote){
1046+
idx--;
1047+
count++;
1048+
}
1049+
return count%2!==0;
1050+
}
10381051
function rowSplit(rowStr, param) {
10391052
var quote=param.quote;
10401053
var trim=param.trim;
@@ -1054,34 +1067,24 @@ function rowSplit(rowStr, param) {
10541067
}
10551068
var len=e.length;
10561069
if (!inquote){
1057-
if (e[0] === quote){ //possible open
1070+
if (isQuoteOpen(e,param)){ //quote open
10581071
e=e.substr(1);
1059-
len-=1;
1060-
if (e[0]!==quote){ // open quote
1061-
if (e[len-1] === quote){ // possible close
1062-
if (e[len-2]!==quote || e[len-2]===quote && e[len-3] === quote){ // close quote
1063-
e=e.substring(0,len-1);
1064-
e=twoDoubleQuote(e,quote);
1065-
row.push(e);
1066-
continue;
1067-
}
1068-
}
1069-
inquote=true;
1070-
quoteBuff+=e;
1072+
if (isQuoteClose(e,param)){ //quote close
1073+
e=e.substring(0,e.length-1);
1074+
e=twoDoubleQuote(e,quote);
1075+
row.push(e);
10711076
continue;
10721077
}else{
1073-
if (len ===1){ // original column is empty quote pairs like ""
1074-
e="";
1075-
}
1076-
row.push(e);
1078+
inquote=true;
1079+
quoteBuff+=e;
10771080
continue;
10781081
}
10791082
}else{
1080-
row.push(e);
1081-
continue;
1083+
row.push(e);
1084+
continue;
10821085
}
10831086
}else{ //previous quote not closed
1084-
if (e[len-1] === quote && (e[len-2] !==quote || e[len-2] === quote && e[len-3] === quote)){ //close double quote
1087+
if (isQuoteClose(e,param)){ //close double quote
10851088
inquote=false;
10861089
e=e.substr(0,len-1);
10871090
quoteBuff+=delimiter+e;
@@ -10144,7 +10147,7 @@ module.exports={
1014410147
"email": "t3dodson@gmail.com"
1014510148
}
1014610149
],
10147-
"version": "0.5.9",
10150+
"version": "0.5.10",
1014810151
"keywords": [
1014910152
"csv",
1015010153
"csvtojson",
@@ -10174,10 +10177,13 @@ module.exports={
1017410177
"grunt-newer": "^1.1.0",
1017510178
"imgur": "^0.1.5",
1017610179
"load-grunt-tasks": "^3.4.0",
10177-
"mocha": "^2.2.5"
10180+
"mocha": "^2.4.5"
1017810181
},
1017910182
"dependencies": {
1018010183
"async": "^1.2.1"
10184+
},
10185+
"scripts":{
10186+
"test":"mocha ./test -R spec"
1018110187
}
1018210188
}
1018310189

0 commit comments

Comments
 (0)