2016-05-14 7 views
0

私はCSVファイルを表す、テキストエリア内の文字列を持っている:余分な行を削除しようとすると、Javascriptを使用してCSVのような文字列に分割し、正規表現

6166;14/12/2011;CASTANIE Bernard;11, rue Porte Bouqueyre;;33330;;Pose d'un radiateur dans la véranda.;44.31; 
6167;14/12/2011;CASTANIE Bernard;11, rue Porte Bouqueyre;;33330;;Dépannage de la chaudière DE DIETRICH MCR 24.;50.23; 
6301;07/02/2012;SCI DU MANOIR;Le Manoir - BP 33;;33330;[email protected];"DEPANNAGE PLOMBERIE 
Intervention R12020023 du 20/01/12";895.16; 
6302;07/02/2012;SCI DU MANOIR;Le Manoir - BP 33;;33330;[email protected];"DEPANNAGE PLOMBERIE WC des bureaux. 
Intervention R12020024 du 23/01/12";92.86; 

これらの行のいくつかのフィールドに改行を持っています。

Javascriptで最後の改行だけを削除するために使用できる正規表現は何でしょうか?

私はこれを試してみましたが、それは動作しません:

myString.replace(/[\r\n]+([^;])/gm,"") 

事前にビッグ感謝を!

サム

+0

こんにちは、それらを取り除くために私にkedしてください。これらは、別の外部ツールにインポートされる行です。彼はこれらの休憩を ""に置き換えることを望んでいます – Kodakgold

+0

csvパッケージhttps://www.npmjs.com/package/csvを使用して、各値を簡単な置き換えでマップすることができます。 –

答えて

0

セミコロンによって先行されていないすべての改行を置き換えます

myString.replace(/([^;])\n/g, '$1 ') 
+0

試しましたが、この結果が得られました:6166; 14/12/2011; CASTANIE Bernard; 11、rue Porte Bouqueyre; 33330 ;; Pose d'un radiateur dans lavéranda; 44.31; 167; 14/12/2011; CASTANIE Bernard; 11、rue Porte Bouqueyre; 33330;Dépannagede lachaudièreDE DIETRICH MCR 24.; 50.23; 301; 07/02/2012; SCI DU MANOIR; Le Manoir - BP 33; 33330; jfxxxxxxx @ gmail。 Le Manoir - BP33; 33330; [email protected]; "DEPANNAGE PLOMBERIEntervention R12020023 du 20/01/12"; 895.16; 302; 07/02/2012; SCI DU MANOIR; N1201024; du 23/01/12 "; 92.86; – Kodakgold

+0

すべての改行が置き換えられ、 '[^;]'がすべてのnonとマッチするので、最初の次の文字 – Kodakgold

+0

は失われます。それらを何も置き換えないで、 ";" (他の回答を見てください) –

1

は、次の関数は、(正規表現よりも、おそらく速く)動作することの可能性があります。

function cleanCSV (cols, csv) { 
 
    var i, clean = "", col = 0; 
 
    for (i = 0; i < csv.length; i++) { 
 
    switch (csv[i]) { 
 
     case '\n' : if (col < cols) break; 
 
     case ';' : col = (col + 1) % (cols + 1); 
 
     default : clean += csv[i]; 
 
    } 
 
    } 
 
    return clean; 
 
} 
 

 
document.write(
 
    "<pre>" + 
 
    cleanCSV(3, "" 
 
    + "a;\nb;c; \n" 
 
    + "d;e\n;f;\n" 
 
    + "g;h\ni;j;\n" 
 
) 
 
    + "</pre>" 
 
);

+0

素晴らしい!良い回避策! – Kodakgold

関連する問題