2

我在十进制类型列中将价格字符串保存到我的数据库中。

价格是这样的"$ 123.99",这很好,因为我写了一些代码来删除"$ ".

但是,我忘记了价格可能包含逗号,因此"$ 1,234.99"破坏了我的代码。我怎样才能删除逗号?

这是我删除美元符号和空格的代码:

def price=(price_str)
  write_attribute(:price, price_str.sub("$ ", ""))
  # possible code to remove comma also?
end
4

1 回答 1

5

您可以通过两种方式轻松到达那里。

String 的delete方法适用于删除所有出现的目标字符串:

'$ 1.23'.delete('$ ,') # => "1.23"
'$ 123,456.00'.delete('$ ,') # => "123456.00"

或者,使用String 的tr方法:

'$ 1.23'.tr('$, ', '') # => "1.23"
'$ 123,456.00'.tr('$ ,', '') # => "123456.00"

tr接受要搜索的字符串,以及用于替换它们的字符串。考虑它是一个gsub方法链,每个字符一个。

可是等等!还有更多!如果替换字符串为空,则搜索字符串中的所有字符都将被删除。

于 2013-08-19T21:53:46.070 回答