Javascript 是否使用正则表达式从货币中删除小数点?
我有一个从json数据获取的货币值范围,格式如下: $25,000-$35,000. 它在Chrome和Firefox中显示得很像,但在IE9和IE10浏览器中显示得像25000.00到35000.00美元 想删除IE浏览器上点后的零。我尝试了以下正则表达式:Javascript 是否使用正则表达式从货币中删除小数点?,javascript,regex,Javascript,Regex,我有一个从json数据获取的货币值范围,格式如下: $25,000-$35,000. 它在Chrome和Firefox中显示得很像,但在IE9和IE10浏览器中显示得像25000.00到35000.00美元 想删除IE浏览器上点后的零。我尝试了以下正则表达式: s.replace(/(\.[0-9]*?)0+$/, ""); 但得到的结果如下: "$25,000.00-$35,000" 仅在值的末尾删除。请告诉我正则表达式有什么问题?请帮助我解决此问题。假设您可以使用的点后始终有0:/\.0
s.replace(/(\.[0-9]*?)0+$/, "");
但得到的结果如下:
"$25,000.00-$35,000"
仅在值的末尾删除。请告诉我正则表达式有什么问题?请帮助我解决此问题。假设您可以使用的点后始终有0:/\.0+/g var s=$25000.00-$35000.00; s=s.replace/\[0-9]*?0+/g;
控制台日志 根据weither与否,点后可能有除0以外的其他内容,以及可以有多少: /\..*?[0]*/g:删除点和所有后续零 /\..*?[0]{1,2}/g:删除点和后面的1或2个零 /\..*?[0-9]*/g或/\..*?\d*/g:删除点和以下数字 /\..*?[0-9]{1,2}/g或/\..*?\d*/g:删除点和以下1或2个数字 希望这有助于基本上,$标志着本文的结束。您可以将其从正则表达式中删除。但是,当文本结尾为.01时,它将失败 您应该查找值,然后只选择美元符号和不带小数点的数字 s、 替换/\$[0-9,]+\[0-9]+/,$1; \$[0-9,]+匹配美元符号和千位分隔符,并将其另存为第一组匹配项 \[0-9]+匹配小数 $1将文本替换为第一组
希望这有帮助 只在值的末尾删除-这就是正则表达式中的$所做的。。。这就是为什么您需要删除$并添加g修饰符。@WiktorStribiżew-我同意,但如果值不是.00而是.01,该怎么办?例如:基本上,您只想删除。如果后面跟2个零。。。因此,这将有助于使事情变得非常复杂easy@JaromandaX:几个月前,我已经为Java回答了这样一个问题。这在正则表达式中是可能的,但看起来很难看。