asp中年龄限制(15岁以上)的日期验证 [英] Date validation for Age limit (above 15 years) in asp
本文介绍了asp中年龄限制(15岁以上)的日期验证的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
以下代码给出了任何日期的错误消息,我需要显示当前日期15岁以下的错误消息,请帮助我
The below code gave error message for any date, i need to display error message for below 15 years age from the current date please help me
<asp:Label ID="Label2" runat="server" Text="DOB"></asp:Label>
<asp:TextBox ID="DOB" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RFVdob" runat="server" ControlToValidate="DOB" ErrorMessage="Enter Birth Date" Font-Bold="True" ForeColor="Red"></asp:RequiredFieldValidator>
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ControlToValidate="DOB" ValidationExpression="^(0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])[- /.](19|20)\d\d$" ErrorMessage="Enter a Valid Date (mm/dd/yyyy)" Font-Bold="True" ForeColor="Red" ></asp:RegularExpressionValidator>
<asp:RangeValidator ID="RangeValidator1" runat="server" ControlToValidate="DOB" ErrorMessage="Age above 15 " Type="Date"></asp:RangeValidator>
Page Lode中的代码:
Code in Page Lode:
System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("hu-HU");
RangeValidator1.MinimumValue = DateTime.Today.AddYears(-15).ToShortDateString();
RangeValidator1.MaximumValue = DateTime.Today.ToShortDateString();
推荐答案
ErrorMessage = 输入有效日期(mm / dd / yyyy) Font-Bold = True ForeColor = 红色 > < / asp:RegularExpressionValidator >
< asp:RangeValidator ID = RangeValidator1 runat = < span class =code-keyword> server ControlToValidate = DOB ErrorMessage = 年龄超过15 类型 = 日期 > < / asp:RangeValidator >
" ErrorMessage="Enter a Valid Date (mm/dd/yyyy)" Font-Bold="True" ForeColor="Red" ></asp:RegularExpressionValidator> <asp:RangeValidator ID="RangeValidator1" runat="server" ControlToValidate="DOB" ErrorMessage="Age above 15 " Type="Date"></asp:RangeValidator>
Page Lode中的代码:
Code in Page Lode:
System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("hu-HU");
RangeValidator1.MinimumValue = DateTime.Today.AddYears(-15).ToShortDateString();
RangeValidator1.MaximumValue = DateTime.Today.ToShortDateString();
我有一个类似的要求才能验证18岁及以上。
我使用了自定义验证器(如果可以,我会尽量避免使用正则表达式)
I had a similar requirement before to validate for age 18 and over.
I used a custom validator (i try to avoid regular expressions if i can)
<asp:CustomValidator ID="cvDOB" runat="server" ControlToValidate="pmDOB"
ClientValidationFunction="VAge"
ErrorMessage="Birth Date is under age 18."
ForeColor="Red">*</asp:CustomValidator>
以下是检查18岁以上的javascript
Here is the javascript to check for age over 18
function VAge(obj, args) {
//validate that a DOB is at least 18 years old.
//http://www.codingforums.com/showthread.php?t=171435
var today = new Date();
var today_year = today.getFullYear();
var value = Trim(args.Value);
value = value.replace("-", "/").replace(".", "/");
var splitDate = value.split("/");
var dob_year = splitDate[2];
var dob_day = splitDate[1];
var dob_month = splitDate[0];
var dob;
dob = new Date(dob_year, dob_month - 1, dob_day); // as months are 0-11
if ((dob_day == dob.getDate()) && (dob_month == (dob.getMonth() + 1)) && (dob_year == dob.getFullYear())) {
dob_month = dob_month - 1; // as months are 0-11
var age = today_year - dob_year;
var today_month = today.getMonth();
var today_day = today.getDate();
if (dob_month > today_month) { age = age - 1 } // next birthday not yet reached
else if (dob_month == today_month && today_day < dob_day) { age = age - 1 } // next birthday not yet reached
if (age < 18) {
args.IsValid = false;
return;
}
}
else {
args.IsValid = false;
return;
}
args.IsValid = true;
}
这篇关于asp中年龄限制(15岁以上)的日期验证的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文