我有这个字符串:$29.99
。我想删除小数点并用标签.
包围小数部分: 。99
<sup>
$29<sup>99</sup>
不过,格式可以改变;小数点可以是逗号而不是点:,99
。
奖励:另外,一个用于提取货币标签的正则表达式,考虑到它可以是可变长度(R$、$、Rs 等)。
str = '$29.99'
result = str.gsub(/\.(\d+)$/, '<sup>\1<sup>')
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$"
这可以处理所有非积分场景:
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>"