我有一个来自json数据的货币值范围,如下所示格式: $ 25,000- $ 35,000。它在Chrome和Firefox中显示得像,但在IE9和IE10浏览器中显示为" $ 25,000.00- $ 35,000.00"。
想在IE浏览器上点后删除那些零。我试过下面的Regex:
s.replace(/(\.[0-9]*?)0+$/, "");
但输出如下:
"$25,000.00-$35,000"
仅删除值的末尾。请让我知道正则表达式有什么问题?请帮我解决这个问题。
答案 0 :(得分:0)
假设点之后总是有0,你可以使用:/\.0+/g
答案 1 :(得分:0)
var s="$25,000.00-$35,000.00";
s=s.replace(/(\.[0-9]*?)0+/g, "");
console.log(s);
答案 2 :(得分:0)
取决于是否在点之后可能存在除0之外的其他东西以及可以有多少:
/\.(.*?[0]*)/g
:删除点和所有后续零/\.(.*?[0]{1,2})/g
:删除点和以下1或2后面的零/\.(.*?[0-9]*)/g
或/\.(.*?\d*)/g
:删除点和以下数字/\.(.*?[0-9]{1,2})/g
或/\.(.*?\d*)/g
:删除点和以下1或2个数字希望这有帮助
答案 3 :(得分:0)
基本上,$
标志着文本的结尾。您可以从正则表达式中删除它。但是,当文本结尾为.01
时,它将失败。
您应找到该值,然后只选择美元符号和不带小数的数字。
s.replace(/(\$[0-9,]+)\.[0-9]+/, "$1");
(\$[0-9,]+)
匹配美元符号和千位分隔符(,
),同时将它们保存为第一组匹配。
\.[0-9]+
匹配小数。
"$1"
将文字替换为第一组。
希望这有帮助!