如果以2位数结尾,如何检查字符串

时间:2016-06-06 17:40:00

标签: javascript string

我需要一个功能来检查价格是否以2位数结尾,如果它没有添加" .00"到最后。

var price = 10;

if(!price.endsWith(2digits?)){
    price.concat(price, ".00");
}

我如何实现这一目标?

3 个答案:

答案 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);