每月验证的正则表达式

时间:2012-10-25 14:11:16

标签: jquery regex

我目前正致力于验证表单。到目前为止,我遇到了障碍。也许你们中的一些疯狂的RegEx家伙可以对这个问题有所了解。我google'd直到我患上关节炎。

目前,我使用以下RegEx:

var dateReg = /^(0[1-9]|1[012])[- //.](0[1-9]|[12][0-9]|3[01])[- //.](19|20)\d\d$/;

这以mm / dd / yyyy格式验证,但仅对31天以下的任何内容进行验证。是否可以按月进行日期验证?是否建议使用另一条路线?

1 个答案:

答案 0 :(得分:1)

正如@Wooble解释的那样,正则表达式无法满足您的需求。那怎么样:

if(typeof String.prototype.isValidDate === "undefined") {
    String.prototype.isValidDate = function() {
        var data = this.split(/[ -./]/);
        var day = parseInt(data[1]);
        var month = parseInt(data[0]) - 1;
        var year = parseInt(data[2]);
        var date = new Date(year, month, day);
        return date.getDate() === day
            && date.getMonth() === month
            && date.getFullYear() === year;
    }
}

document.write("11 02 2011".isValidDate());​
document.write("<br />");
document.write("11 32 2011".isValidDate());

打印:

true
false

可以使用演示here