javascriptでsplitを使ってコンマで分割すると、""で囲まれた内部のコンマまで分割されてしまいます。きれいにCSVに分割する方法を教えてください

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2011/06/08 11:20:18

回答1件)

id:amachang No.1

回答回数15ベストアンサー獲得回数3

以下のような感じではいかがでしょうか?

// 行に分ける
var lines = csv.split(/\n/);

// 一行ごとにループ
for (var i = 0; i < lines.length; i++) {
    var line = lines[i];

    // 以下の正規表現でカンマごとに分ける
    var data = line.match(/"[^"]*"|[^,]+/g);
}

重要なのは以下の正規表現です。

/"[^"]*"|[^,]+/g

ダブルクオーテーション内で、エスケープが入るときは以下のようにするといいでしょう。


/"(\\["ntr\\]|[^"])*"|[^,]+/g

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません