初心者です。
なんとかCSVの読み込みはできております。
all_csvの中に以下CSVのデータが入っているとします。
CSVイメージー all_csv
これは1回目のまるがついています。,これは2回目のまるがついています。,これは3回目のまるがついています。,これは4回目のまるがついていま。,これは5回目のまるがついています。,これは6回目のまるがついています。,これは7回目のまるがついています。,これは8回目のまるがついています。,これは9回目のまるがついています。,これは10回目のまるがついています
#やりたいこと その1
all_csvの中身を順番に読み4つの「。」があったら改行する というロジックを入れたいです。以下のようなイメージです。なお。の数はそれぞれ0個の場合もあるし100個以上ある場合もあります。
これは1回目のまるがついています。,これは2回目のまるがついています。,これは3回目のまるがついています。,これは4回目のまるがついていま。
これは5回目のまるがついています。,これは6回目のまるがついています。,これは7回目のまるがついています。,これは8回目のまるがついています。
これは9回目のまるがついています。,これは10回目のまるがついています
#ためしたこと
all_csv// <-- 全てのデータが入っている for(var i = 0; i <= 99999; i++) { target_csv += "\n"; // <-- 改行を加える }
#やりたいこと その2
marumaruという変数に「これは1回目のまるがついています。」というデータで中にカンマが入っていたとします。具体的には「これは,1回目の,まるが,ついています。」と入っていたとします。その場合csvがずれてしまい困っています。
marumarub = "これは,1回目の,まるが,ついています。"
この時にカンマをカウントせずに
marumarub = "これは1回目のまるがついています。"
と表示させる為にsplit関数をつかえばいいのでしょうか?調べましたが",(?=([^"]"[^"]")[^"]$)"の部分が理解できず質問させて頂きました。
var csv_sample = '"学校","我が子の名前="健太,綾香"","特機","鷲見","誕生日"';
var csvvalue = csv_sample.split(",(?=([^"]"[^"]")[^"]$)", -1);
以下を参考にしました。
https://teratail.com/questions/41598
追記 以下コメントがありましたが以前本質問の回答がわかりません。
var lines = text.split(lined);
初めに改行で split しているのでセル値内の改行もsplitしてしまっています。
"" で括られた中にはどんな文字でも入れる事が出来ます(エスケープされていない " を除く)ので split で行を分割する実装は基本的にまずいです。
" のエスケープ処理がなく、 ", が後続すると自動的にセル値として閉じる仕様なので ", をセル値に含める事もできないようです。
console.log(JSON.stringify(jQuery.csv()('"a1"",a2","b1\r\nb2"'))); // [["a1"","2","b"],["2"]]
宜しくお願いします。