正则表达式不适用于验证信用卡到期信息

时间:2016-04-29 07:18:54

标签: javascript regex

我有一个正则表达式,与信用卡上的失效日期相匹配 我正在寻找的格式是mm / yy。以下是我在javascript中的功能

validateCreditCardExpiry: function(expiry){
        if(this.isEmpty(expiry))
        {
            return false;
        }
        var regex = /^(0[1-9]|1[0-2])\/?([0-9]{2})$/;
        if(!regex.test(expiry))
        {
            return false
        }
        return true
    }

我尝试过使用上面的字符串,如12/33,返回false。有人可以帮我吗。谢谢

2 个答案:

答案 0 :(得分:1)

除了我的评论(see your working regex here),您还可以很好地缩短您的功能:

validateCreditCardExpiry: function(expiry){
    if (expiry) {
        var regex = /^(0[1-9]|1[0-2])\/?([0-9]{2})$/;
        if(regex.test(expiry)) return true;
    }
    return false;
}

或者 - 正如@anubhava在评论中指出的那样,甚至更短:

validateCreditCardExpiry: function(expiry){
    return /^(0[1-9]|1[0-2])\/?[0-9]{2}$/.test(expiry);
}

答案 1 :(得分:0)

上面的正则表达式工作正常。我不知何故在'/'之间引入了空格。这就是问题