-1

我有这个字符串:$29.99。我想删除小数点并用标签.包围小数部分: 。99<sup>$29<sup>99</sup>

不过,格式可以改变;小数点可以是逗号而不是点:,99

奖励:另外,一个用于提取货币标签的正则表达式,考虑到它可以是可变长度(R$、$、Rs 等)。

4

3 回答 3

2
str = '$29.99'
result = str.gsub(/\.(\d+)$/, '<sup>\1<sup>')
于 2013-04-30T13:27:59.790 回答
1
1.9.3p385 :012 > "$29.99".gsub(/(\.|,)/,'<sup>').concat("</sup>")
 => "$29<sup>99</sup>" 

并提取货币:

1.9.3p385 :020 > ("USD>as$29.99" =~ /(.*?)\d.*/ ; $1)
 => "USD>as$" 
于 2013-04-30T13:56:21.110 回答
1

这可以处理所有非积分场景:

1.9.3p392 :009 > "$29.99".gsub(/(\d+)[,.](\d+)/, "\\1<sup>\\2</sup>")
 => "$29<sup>99</sup>"
1.9.3p392 :010 > "$29,99".gsub(/(\d+)[,.](\d+)/, "\\1<sup>\\2</sup>")
 => "$29<sup>99</sup>"
1.9.3p392 :011 > "R$29,99".gsub(/(\d+)[,.](\d+)/, "\\1<sup>\\2</sup>")
 => "R$29<sup>99</sup>"
于 2013-04-30T13:59:12.510 回答