我目前正在学习正则表达式,但迫切需要这个。
我有一组值(10, 19.5, 13.99, 9.09)
。除第二个值外,这些格式都很好。
我的问题是如何重写以便19.5变为19.50
而不影响其他条目,即(10, 19.50, 13.99, 9.09)
非常感谢你们。
答案 0 :(得分:2)
如果这些是数字,请使用toFixed()
如果这些是字符串,您可以使用
num="19.5"
num.replace(/^(\d+\.\d)$/,"$10");
答案 1 :(得分:0)
编辑回答:
<script type="text/javascript">
var num = 19.9;
if(String(num).indexOf('.')>-1)
{
num = num.toFixed(2);
}
alert(num);
</script>
直接的答案是使用“.toFixed(2)”,但我们验证它是否为小数,以便我们没有“10.00”之类的结果
对于进一步的格式化选项,您有jquery插件numberformatter:
http://archive.plugins.jquery.com/project/numberformatter
这是项目网页:
http://code.google.com/p/jquery-numberformatter/
此库的直接链接:
http://jquery-numberformatter.googlecode.com/files/jquery.numberformatter-1.2.2.jsmin.js
答案 2 :(得分:0)
如果您想使用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"
。
答案 3 :(得分:0)
搜索:
(\.\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'
答案 4 :(得分:0)
例如,迭代每个值:
var value = '19.5';
value = value.replace(/^\d+[\.,]\d{1}$/, '$&0');
答案 5 :(得分: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