多个日期的正则表达式

时间:2014-12-29 06:20:41

标签: c# asp.net regex

我有三个文本框,

Date Of Birth

的第一名

Date of Joining

的第二名

Date of Leaving

的第3名

我想要一个正则表达式,以便正确验证它。例如:出生日期应小于加入日期和离开日期。

此外,离开日期应始终大于加入日期。请告诉我如何正确验证

3 个答案:

答案 0 :(得分:0)

这是不可能的

日期验证基本上不可能单独使用正则表达式,2月29日是更难的问题之一。正则表达式中的日期比较更难。

找到另一种方法

答案 1 :(得分:0)

您可以使用JavaScript

使用客户端验证

tbStartDateID和tbEndDateID是文本框控件' id分别输入开始日期和结束日期。

JavaScript功能:

function CompareDates(tbStartDateID, tbEndDateID) {
    var startDate = document.getElementById(tbStartDateID).value;
    var endDate = document.getElementById(tbEndDateID).value;
    //Difference in milliseconds
    var timeDiff =  Date.parse(endDate) - Date.parse(startDate);
    if (Date.parse(endDate) > Date.parse(startDate)) {

        alert("It is okay, end date is greater than start date");
    }
    else {
        alert("Start Date must be lesser than end Date");
    }
}

答案 2 :(得分:0)

    You cannot use Regular Expressions for validating dates. 
Instead you can use something like this : 


    **HTML :**

        <input type="date" id="dob" name="dob" runat="server" />
        <input type="date" id="joinDate" name="jDate" runat="server" />

    **C# Code :**

        protected Boolean Validate_DateOfBirth()
                {
                    int dateDOB, joiningDt;
                    string joiningDate = joinDate.Value; ;
                    string varDOB = dob.Value;
                    varDOB = varDOB.Replace(@"-", "");//Our string will be in yyyyMMdd format now.
                    joiningDate = joiningDate.Replace(@"-", "");

                    dateDOB=int.Parse(varDOB);
                    joiningDt = int.Parse(joiningDate);
                    if (dateDOB > joiningDt){
                        //Raise your error here. 
                        return false;
                    }
                    else{
                        //Everything id fine..
                        return true;
                    }
                }

    You can implement the similar thing for comparing date of joining and 
date of leaving..