我有以下代码来获取金额和其他金额。
@payer_contract_params['payer'] = JSON.parse(@payer_contract_params['payer'])
@payer_contract_params['amount'] = @payer_contract_params['amount'].to_s.tr('$', '').tr(',','')
@payer_contract_params['stoploss_amount'] = @payer_contract_params['stoploss_amount'].to_s.tr('$', '').tr(',','')
它有效,但它只适用于使用' $'作为货币和','作为分隔符。我如何使用正则表达式来抓取只抓取数字或小数点分隔符?
答案 0 :(得分:0)
像这样使用gsub @payer_contract_params['amount'].to_s.gsub(/[^\d,]/, '')
这将替换所有不是数字或逗号的字符。
答案 1 :(得分:0)
很简单
/(^\d+$)|(^\.$)/
击穿
()
- 表示捕获组
^
- 表示正则表达式以下面的表达式
\d
- 匹配任何数字
+
- 匹配前一个选择器中的一个或多个
$
- 表示正则表达式以前一个表达式结束
|
- 或
\.
- 匹配一段时间。注意斜线以逃避它。
答案 2 :(得分:-1)