5
如何從Javascript/NodeJS中的字符串中檢測CSV分隔符?使用Javascript中的CSV分隔符自動檢測
哪個是標準算法?
請注意,分隔符總是不是逗號。最常見的分隔符是;
,,
和\t
(標籤)。
如何從Javascript/NodeJS中的字符串中檢測CSV分隔符?使用Javascript中的CSV分隔符自動檢測
哪個是標準算法?
請注意,分隔符總是不是逗號。最常見的分隔符是;
,,
和\t
(標籤)。
一種可能的算法求可能分離器(一個或多個)是相當簡單的,假定數據是合式:
length
。length
是而不是等於最後一行的長度,則這不是有效的分隔符。概念證明(不處理引號的字段):
function guessDelimiters (text, possibleDelimiters) {
return possibleDelimiters.filter(weedOut);
function weedOut (delimiter) {
var cache = -1;
return text.split('\n').every(checkLength);
function checkLength (line) {
if (!line) {
return true;
}
var length = line.split(delimiter).length;
if (cache < 0) {
cache = length;
}
return cache === length && length > 1;
}
}
}
的length > 1
檢查,以確保split
不只是返回整條生產線。請注意,這會返回一個可能的分隔符數組 - 如果有多個項目,則會產生歧義問題。
下面是Python如何執行此操作:http://svn.python.org/view/python/trunk/Lib/csv.py?view=markup#l162 – Blender
您使用什麼模塊來解析CSV? – Alex
@Blender這將是很好的端口它的JavaScript。我不是一個Python專家......我沒有看到類似的問題。 –