Javascript 正则表达式在第一个小数点后加0

Javascript 正则表达式在第一个小数点后加0,javascript,regex,currency,Javascript,Regex,Currency,我目前正在学习正则表达式,但非常迫切地需要它 我有一组值(10,19.5,13.99,9.09)。除了第二个值之外,这些格式都很好 我的问题是如何重写,使19.5变成19.50,而不影响其他条目,即(10,19.50,13.99,9.09) 非常感谢各位。编辑答案: <script type="text/javascript"> var num = 19.9; if(String(num).indexOf('.')>-1) { num = num.toFixed(2);

我目前正在学习正则表达式,但非常迫切地需要它

我有一组值
(10,19.5,13.99,9.09)
。除了第二个值之外,这些格式都很好

我的问题是如何重写,使19.5变成
19.50
,而不影响其他条目,即
(10,19.50,13.99,9.09)

非常感谢各位。

编辑答案:

<script type="text/javascript">
var num = 19.9;
if(String(num).indexOf('.')>-1)
{
    num = num.toFixed(2);
}
alert(num);
</script>
以下是项目网页:

此库的直接链接:


如果您想使用RegEx,可以执行以下操作:

"10, 19.5, 13.99, 9.09".replace(/^\d+\.\d{1}$/g, function (full) {
    return full + "0";
});

这将返回
“10,19.50,13.99,9.09”

如果这些是数字,请使用toFixed()

如果这些是字符串,则可以使用

num="19.5"
num.replace(/^(\d+\.\d)$/,"$10");
搜索:

(\.\d)(\D|$)
这是点后跟一个数字,然后不是数字的东西(或字符串的结尾)

替换为:

$10$2
这是第一个捕获组,然后是“0”,然后是第二个捕获组

var s = '10, 19.5, 13.99, 9.9';
s = s.replace(/(\.\d)(\D|$)/g, '$10$2');
// s == '10, 19.50, 13.99, 9.90'

例如,迭代每个值:

var value = '19.5';
value = value.replace(/^\d+[\.,]\d{1}$/, '$&0');
试试这个

var array = [10, 19.5, 13.99, 9.09];
for(var i=0; i< array.length;i++){
    if(/[0-9].[0-9]{1}$/.test(array[i]))  array[i] = array[i]+'0';
}
alert(array);

OUTPUT : 

10, 19.50, 13.99, 9.09
var数组=[10,19.5,13.99,9.09];
for(var i=0;i

fiddle:

只要它是一个数字变量,右边的零(小数点后)将被删除,除非您希望它们作为字符串。这是不正确的。首先,启用
/g
说明符。这将用13.909替换13.99。这与
相同。replace(/^\d+\.\d{1}$/g,$&0')
-在这种情况下不需要回调函数。另外,
$
只匹配最后一个位置(如果输入是单个数字,而不是整个列表,则是正确的,
{1}
根据定义不执行任何操作。我建议您运行代码并查看其结果…这会将
10
更改为
10.00
,但我认为检查整数很容易。或者将字符串转换为数字。效果很好。谢谢大家!
var array = [10, 19.5, 13.99, 9.09];
for(var i=0; i< array.length;i++){
    if(/[0-9].[0-9]{1}$/.test(array[i]))  array[i] = array[i]+'0';
}
alert(array);

OUTPUT : 

10, 19.50, 13.99, 9.09