我无法获取货币和工作时间的格式。
货币是返回小数点左边至少一个整数,右边两个和逗号:
非数字(a、a1、a1.00)和 0 --> 0.00
1 --> 1.00
1.1 --> 1.10
9999 --> 9,999.00
我有:
$("#addCostpp").blur( function(){
$("#addCostpp").val(validateCost($(this).val()));
});
function validateCost(cost_amount){
return cost_amount.toFixed(2).replace(/(\d)(?=(\d{3})+(?!\d))/, '$1,$2$3')
}
返回时间为 00:00:
0(或错误,例如 a 或 aa)--> 00:00
1 --> 01:00
01 --> 01:00
01:0 --> 01:00(或者如果 : 是任何非数字,例如 01;0 或 01L0)
0101 --> 01:01
010203 --> 01:02
$("#addTimeOpen").blur( function(){
$("#addTimeOpen").val(validateTime($(this).val()));
});
function validateTime(timeString){
var formatted = "";
if (timeString.match(/^0/)){
formatted = timeString.replace(/(\d{2})(\d{2})/, "$1:$2");
}else{
formatted = timeString.replace(/(\d{1})(\d{2})/, "0$1:$2");
}
//update
return(formatted);
}
最佳答案
为了输出您想要的货币数字,您需要使用以下方法,
new Intl.NumberFormat('en-IN', {minimumFractionDigits: 2})
以及您想要的时间格式,您需要通过以下方式使用 moment.js
,
moment('010203', 'H:mm:ss').format('HH:mm')
要根据您想要的输出格式化货币,您需要使用带有 minimumFractionDigits = 2
参数的 Intl.NumberFormat
函数。
我为此添加了一个代码片段,我在以下片段上使用您想要的输出进行格式化。
var formatter = new Intl.NumberFormat('en-IN', {minimumFractionDigits: 2});
var input1 = document.getElementById('input1').innerHTML;
var input2 = document.getElementById('input2').innerHTML;
var input3 = document.getElementById('input3').innerHTML;
document.getElementById('result1').innerHTML = formatter.format(input1);
document.getElementById('result2').innerHTML = formatter.format(input2);
document.getElementById('result3').innerHTML = formatter.format(input3);
function formatTime( cTime ){
var formattedTime;
if(cTime.length === 1 || cTime.length === 2){
formattedTime = moment(cTime, 'H').format('HH:mm');
}else if(cTime.length === 3 || cTime.length === 4){
formattedTime = moment(cTime, 'H:mm').format('HH:mm');
}else if(cTime.length > 4){
formattedTime = moment(cTime, 'H:mm:ss').format('HH:mm');
}
return formattedTime;
}
var time1 = document.getElementById('time1').innerHTML;
var time2 = document.getElementById('time2').innerHTML;
var time3 = document.getElementById('time3').innerHTML;
var time4 = document.getElementById('time4').innerHTML;
var time5 = document.getElementById('time5').innerHTML;
document.getElementById('result_time1').innerHTML = formatTime(time1);
document.getElementById('result_time2').innerHTML = formatTime(time2);
document.getElementById('result_time3').innerHTML = formatTime(time3);
document.getElementById('result_time4').innerHTML = formatTime(time4);
document.getElementById('result_time5').innerHTML = formatTime(time5);
p{
margin-top: 20px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>
<p>
<span id="input1">1</span> <br><span id="result1"></span>
</p>
<p>
<span id="input2">1.1</span> <br><span id="result2"></span>
</p>
<p>
<span id="input3">9999</span> <br><span id="result3"></span>
</p>
<p>
<span id="time1">1</span> <br> <span id="result_time1"></span>
</p>
<p>
<span id="time2">01</span> <br> <span id="result_time2"></span>
</p>
<p>
<span id="time3">01:0</span> <br> <span id="result_time3"></span>
</p>
<p>
<span id="time4">0101</span> <br><span id="result_time4"></span>
</p>
<p>
<span id="time5">010203</span> <br> <span id="result_time5"></span>
</p>
关于javascript - 如何在javascript中设置货币和时间的格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60689698/