質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

1196閲覧

カンマを除く処理方法について

退会済みユーザー

退会済みユーザー

総合スコア0

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2019/08/07 01:56

編集2019/08/23 01:14

以下のようなcsvがあるとします。2番目と3番目と4番目のカンマにご注目ください。
|1番目|2番目=値段は19,800円です|3番目は,,,|4番目はカ,ン,マ,地,獄
|:--|:--:|--:|

#ためしたこと

var result = '1番目,2番目=値段は19,800円です,3番目は,,,,4番目はカ,ン,マ,地,獄'; result = result.replace(/\r?\n/g,"");

#できないこと
現在この「入力項目の中にあるカンマ」と「csv上の次のデータを読みに行くカンマ」を判別できずに
resultのデータがずれてしまいます。

#やりたいこと
抽出した文字の不要改行を全削除する事はできましたがカンマのずれを実装する事ができず困っています。
大変お手数おかけしますがcsvの1セル内のカンマは無視し以下のようなcsvを構築する実装方法を教えてください。

実現実装No1 カンマをそのままで分類できる(不可能?)

|1番目|2番目=値段は19,800円です|3番目は,,,|4番目はカ,ン,マ,地,獄
|:--|:--:|--:|

実現実装No2 カンマを「.」に変換する
|1番目|2番目=値段は19.800円です|3番目は...|4番目はカ.ン.マ.地.獄
|:--|:--:|--:|

実現実装No2 カンマを削除する
|1番目|2番目=値段は19800円です|3番目は|4番目はカンマ地獄
|:--|:--:|--:|

出来ればお客様のデータなのでデータ変換やデータ削除ではなく
データ内のカンマをそのまま無視しhtmlに出力したいです。

宜しくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

「入力項目の中にあるカンマ」と「csv上の次のデータを読みに行くカンマ」の判別はどのようにするのでしょうか?
(「3番目は,,,」を1つのデータであるとどうやって判別するのでしょうか?)

例えば3番目、4番目には必ずデータが入るという条件であれば、データがなければ,はデータとして判別するなどの方法がとれるかと思います。

が、多分今回の場合ですと難しいでしょう。
データを受け取る際に、,を除去してもらうであったり、タブ区切りでもらうという方法を依頼するというのが現実的かと思います。

投稿2019/08/07 02:19

編集2019/08/07 04:04
yamap55

総合スコア1376

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/08/07 02:25

ありがとうございます。簡単に言うと、csvで頂いたデータをHTML出力すると考えて頂ければと思います。タブ区切りでも今後はタブを入力される可能性がありますよね。お客さんに除去させるというのも嫌がられるのでこちらで削除や置き換えが妥当でしょうか?
yamap55

2019/08/07 02:42

削除や置き換えが可能であればいいのですが、回答に記載したようにデータと区切りを判別するための条件がないのであれば無理です。お客さんが嫌がると言っても、無理なものは無理なので、してもらうかそのデータを無視するか位しかできないような気がします。
退会済みユーザー

退会済みユーザー

2019/08/07 02:48

おっしゃるとおりですね。一点コードについて質問です。単純に以下のように var result = '値段は19,800円です'; というresultがあったとします。 もしもresultにカンマ「,」が含まれていたら、「●」に置換する とコードで書いていただけないでしょうか?
yamap55

2019/08/07 02:53

本題とズレるので別の質問にした方が良いかと思います。また、その際にはご自分で試した結果も併せて記載すると良いかと思います。(ここはコードを書いてもらう場所ではないので)
退会済みユーザー

退会済みユーザー

2019/08/07 02:59

そうですね。もう書きました。 if ( Text.match(/,/)) { Text = Text.replace(‘,’, ‘>>changedcomma<<’); }
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問