2つの同一のテストファイルがあります。
FILE1(OD -c file2.csv)<(OD -c file1.csv)2つの同一のcsvファイルですが、キャリッジリターンと改行の問題があります
<:返すそれらの差分を取る ABC \ rを\ NABC \ rを\ NABC
FILE2 : ABC \ rを\ NABC \ rを\ NABC \ rを\ nは
のでどうやら、Excelが追加\ rは\ nは.csvファイルの作成で
私のcsv parse関数:
var reader = new FileReader();
reader.onload = function(e) {
var contents = e.target.result;
var rows = contents.split(/[\r\n]{1,}/g);
}
私は上記の私の解析機能では、私の正規表現をどのように修正すればよいマイhasDups()関数は、サンプルファイルのtest.CSV 2
function toLowerCase(s) {
if (typeof(s) === 'string') {
return s.toLowerCase();
}
return s;
}
function hasDups(arr) {
return (arr.length !== _.uniq(arr, false, toLowerCase).length);
}
$scope.add= function() {
var subs = [];
angular.forEach($scope.csvModel, function(sub) {
var subCopy = angular.copy(sub);
// Concatenates each field into one separated by spaces
subs.push(Object.keys(subCopy).map(function(key) {
return subCopy[key];
}).join(' '));
});
}
if ($scope.hasDups(subs)) {
console.log("dups exsist")
}
}
ファイルで動作します?
ABC
ABC
ABC
ABC
ABC
出力(行)は、不要な改行やスペースなどをすべて削除し、1行に1つだけabcを表示する必要があります。
さらに処理する前に、ファイルの末尾にある '\ r'や/または' \ n'文字を取り除くことはできません。また、 '.filter()'は、空白だけですか? – nnnnnn
if(rows [rows.length-1] == '' { rows.pop() }末尾から ''を削除した – Angular
ファイルは実際にスペース文字で表示されていますか? '\ r'と' \ n'文字を使用しています。そうすれば、ファイル2の配列の最後に不要な要素が2つ以上あることになります。また、どのように 'hasDups()'を呼びますか?ファイル読み込みコードと 'hasDups()'の間に直接リンクを表示します。 – nnnnnn