我需要一个功能来检查价格是否以2位数结尾,如果它没有添加" .00"到最后。
var price = 10;
if(!price.endsWith(2digits?)){
price.concat(price, ".00");
}
我如何实现这一目标?
答案 0 :(得分:3)
这将实现您的目标:
// Get the last two characters of the string
var last2Chars = price.substr(price.length - 1, price.length);
// Check if the last two characters are digits
var isNumeric = /^\d+$/.test(last2Chars);
// If they are update price
if (isNumeric) {
price = last2Chars.concat(".00");
}
答案 1 :(得分:1)
这会处理更多的价格案例并验证它是一个数字。
function getPrice(price){
var match = /^(\d*)(\.(\d+)){0,1}$/.exec(price);
if(match){
if(match[3] && match[3].length == 2){
return match[0];
}else if(!match[2]){
return price + ".00";
}else if(match[3].length == 1){
return price + "0";
}else{
return match[1] + "." + (parseInt(match[3].substr(0,2)) + (match[3].substr(2, 1) >= 5? 1: 0));
}
}
return null;
}
getPrice(null); //返回null getPrice(0); //返回“0.00” getPrice(1); //返回“1.00” getPrice(10); //返回“10.00” getPrice(10.1); //返回“10.10” getPrice(10.12); //返回“10.12” getPrice(10.123); //返回“10.12” getPrice(10.125); //返回“10.13”
答案 2 :(得分:0)
这似乎是这样的:
var price = "23";
if (price.slice(-3).charAt(0) != '.') price = price.concat(".00");
console.log(price);