Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/417.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否使用正则表达式从货币中删除小数点?_Javascript_Regex - Fatal编程技术网

Javascript 是否使用正则表达式从货币中删除小数点?

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

我有一个从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+/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回答了这样一个问题。这在正则表达式中是可能的,但看起来很难看。