2017-03-20 14 views
-1

私は現在プログラムを作っていて、すべてのスペースをカンマに変えるコードを持っています.でもコンマのすべてのセットを1つにしたいと思っています。Javascriptを使用して重複するコンマを削除する

現在、このデータセットを変更する場合は、1, 2, 3から1,,2,,3になりますが、1,2,3に移動します。以前はこのコードif (g('txt').value.indexOf(',,')!=-1){var string = g('txt').value,split = string.replace(/,,/g,',');g('txt').value = split;}を使用していましたが、2つのカンマのセットだけが変更されますが、3つ以上の場合は変更されません。

誰でも方法を知っていますか?

ALSO

任意の文字が入力であるかどうかを確認する方法はありますか?

+1

'/、\ sの+、/ gにそれをしたい場合は、 ''' – epascarello

+0

そのコードは」doesnのカンマで問題を解決しても、それは実際にエクストラを削除するものではありません。 –

+0

それは私のために働いた... "1,2,3" .replace(/、?\ s +、?/ g、 '、') '' 1,2,3 "' – epascarello

答えて

4

これを試してみてください:string.replace(/,+/g,',');

+0

ありがとう!それは動作します! –

+0

@FinleySherwood喜んで助けることができました!答えを受け入れるようにしてください。気に入ったらアップヴォートを残してください。 – Feathercrown

+0

ちょうど数分待つ必要がありますが、私は –

1

あなたはstr.replace(/,*\s+|\s+,*|,+/g, ",")にコードを変更することができます。

例:

  • "1, 2, 3""1,2 3""1,,2, 3""1,2,3"
  • "1, 2, ,3"へのすべての変更"1,2,,3"への変更(2つのコンマの間にスペースを想定したが、無視すべきではありません)

あなたがしたい場合最後には"1,2,3"を出力する場合は、代わりに/,*\s+,*|,+/gを使用してください。

2

ワンステップ:??

"1, 2, 3".replace(/,*\s+,*/g,',') 

か、二段階で

"1, 2, 3".replace(/\s+/g,',').replace(/,+/g, ",") 
関連する問題