2017-05-28 11 views
2

私はparams[:number].gsub(/\D/,'')と番号を保存するんだけど、私はプラス記号を削除したくない:+ユーザーは数それが15169499508として保存し+1 (516) 949-9508が保存されますが、我々はどのように保存することができれば例えばGSUB番号と+

+として+15169499508

+0

私が理解する限り、文字列の先頭にだけプラスを残したいと思っていますか? '.gsub(/ ^(\ +)| \ D + /、 '\ 1')' –

答えて

3

Ruby \D[^0-9]の単なるエイリアスです。あなたが任意の構文規則を持っていない場合は、deleteはうまく動作します

params[:number].gsub(/[^0-9+]/,'') 
+1

を使うか、エイリアスを好むなら '[^ \ d +]'を使います。 – Stefan

2

'+1 (516) 949-9508'.delete('^0-9+') #=> "+15169499508" 
4

を私は理解してあなただけの唯一の開始時にプラスを維持したいあなたは、明示的に[^0-9+]を設定することができ文字列

.gsub(/\A(\+)|\D+/, '\1') 

ここで、\A(\+)分岐がリテラルに一致するプラス文字列の先頭に:あなたが使用する必要があります。 2番目のブランチは、+量子が1つ以上の出現と一致するだけで、数字以外のすべての文字に一致する\Dです。 \1の後方参照は、結果の文字列内の最初のプラス記号を復元します。

関連する問題