質問するログイン新規登録

質問編集履歴

1

2019/07/31 12:13

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -41,10 +41,19 @@
41
41
 
42
42
  と表示させる為にsplit関数をつかえばいいのでしょうか?調べましたが",(?=([^\"]*\"[^\"]*\")*[^\"]*$)"の部分が理解できず質問させて頂きました。
43
43
 
44
- var csv_sample = '"学校","我が子の名前=\"健太,綾香\"","特機","鷲見","誕生日"';
44
+ ~~var csv_sample = '"学校","我が子の名前=\"健太,綾香\"","特機","鷲見","誕生日"';
45
- var csvvalue = csv_sample.split(",(?=([^\"]*\"[^\"]*\")*[^\"]*$)", -1);
45
+ var csvvalue = csv_sample.split(",(?=([^\"]*\"[^\"]*\")*[^\"]*$)", -1);~~
46
46
 
47
47
  以下を参考にしました。
48
48
  https://teratail.com/questions/41598
49
49
 
50
+ 追記 以下コメントがありましたが以前本質問の回答がわかりません。
51
+
52
+ > var lines = text.split(lined);
53
+ 初めに改行で split しているのでセル値内の改行もsplitしてしまっています。
54
+ "" で括られた中にはどんな文字でも入れる事が出来ます(エスケープされていない " を除く)ので split で行を分割する実装は基本的にまずいです。
55
+ " のエスケープ処理がなく、 ", が後続すると自動的にセル値として閉じる仕様なので ", をセル値に含める事もできないようです。
56
+ console.log(JSON.stringify(jQuery.csv()('"a1"",a2","b1\r\nb2"'))); // [["a1\"","2","b"],["2"]]
57
+
58
+
50
59
  宜しくお願いします。