我在asp.net工作,我想從文本框中的用戶採取DOB,我如何驗證feb和閏年考慮的測試箱。我還希望在DD中輸入日期/ MM/YYYY。出生日期驗證
Q
出生日期驗證
2
A
回答
1
試試這個 -
// <summary>
// Determine if Date String is an actual date
// Date format = MM/DD/YYYY
// </summary>
// <param name="date"></param>
// <returns></returns>
private bool ValidateDate(string date)
{
try
{
// for US, alter to suit if splitting on hyphen, comma, etc.
string[] dateParts = date.Split('/');
// create new date from the parts; if this does not fail
// the method will return true and the date is valid
DateTime testDate = new
DateTime(Convert.ToInt32(dateParts[2]),
Convert.ToInt32(dateParts[0]),
Convert.ToInt32(dateParts[1]));
return true;
}
catch
{
// if a test date cannot be created, the
// method will return false
return false;
}
}
1
嘗試使用正則表達式驗證在ASP.NET ..事情是這樣的:
<asp:RegularExpressionValidator ID="RegExpVal1" runat="server" ControlToValidate="{Here Goes your Text Box}" ErrorMessage="DOB has to be in dd/mm/yyyy format" ValidationExpression="^([1-9]0[1-9][12][0-9]3[01])[- /.]([1-9]0[1-9]1[012])[- /.][0-9]{4}$" >*</asp:RegularExpressionValidator>
編輯:我missunderstood你的問題(TNX到@rob)。所以也許你可以使用自定義驗證器。類似這樣的:
<asp:CustomValidator ID="MyValidator" runat="server"
ErrorMessage="Invalid date!"
ControlToValidate="tbDOB"
OnServerValidate="MyValidator_ServerValidate">
</asp:CustomValidator>
將以上添加到您的DateTime用戶控件。現在檢查有效日期:
public partial class DateTime_EditField : System.Web.DynamicData.FieldTemplateUserControl
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void MyValidator_ServerValidate(object source, ServerValidateEventArgs args)
{
DateTime temp;
String textDate = tbDOB.Text;
if (DateTime.TryParse(textDate, out temp))
{
args.IsValid = true;
}
else
{
args.IsValid = false;
}
}
}
1
您可以使用DateTime.TryParseExact
:
string dateString = "22/07/1876";
DateTime dateOut;
if ((DateTime.TryParseExact(dateString, "dd/MM/yyyy",
new CultureInfo("en-US"),
DateTimeStyles.None,
out dateOut)))
Console.WriteLine("Date is valid: {0}", dateOut.ToString());
else
Console.WriteLine("Date string {0} is invalid.", dateString);
1
做的最好的事情是使用DateTime.ParseDate方法:
var date = "01/10/1981";
var parsedDate = new DateTime();
if (DateTime.TryParse(date, out parsedDate))
{
// Date is valid and is now in "date"
}
else
{
// Date is NOT valid/parseable
}
2
這些瓦利代碼代碼也起作用。
<asp:CompareValidator ErrorMessage="(mm/dd/yyyy)" Display="Dynamic" ID="valcDate" ControlToValidate="txtDate" Operator="DataTypeCheck" Type="Date" runat="server"></asp:CompareValidator>
<asp:RangeValidator ID="valrDate" runat="server" ControlToValidate="txtDate" MinimumValue="12/31/1950" MaximumValue="1/1/2100" Type="Date" text="Invalid Date" Display="Dynamic"/>
1
我不明白爲什麼大家嘗試推倒重來,使用正則表達式與需要閏年和您想要的日期是在 http://regexlib.com/Search.aspx?k=date&c=-1&m=5&ps=50 已配發大正則表達式的格式驗證等等。
相關問題
- 1. DatePicker出生日期驗證
- 2. 驗證出生日期註冊日曆
- 3. 出生日期驗證問題
- 4. 出生日期驗證不斷顯示
- 5. JavaScript中的出生日期驗證?
- 6. JavaScript中的出生日期驗證
- 7. 使用C++驗證出生日期
- 8. 荷蘭芹驗證出生日期
- 9. jQuery - 如何使用jQuery驗證插件驗證出生日期?
- 10. 驗證出生日期不應大於當前日期
- 11. 日期驗證
- 12. 日期驗證
- 13. 日期驗證
- 14. 日期驗證
- 15. 日期驗證
- 16. 日期驗證
- 17. 日期驗證
- 18. 如何使用Jquery.ui.datepicker.css驗證出生日期和已故文本框的日期
- 19. 如何驗證出生日期與jQuery驗證程序的日期月年的三個文本框
- 20. Codeigniter:日期驗證
- 21. cakephp日期驗證
- 22. MVC3日期驗證
- 23. Python,日期驗證
- 24. javascript日期驗證
- 25. 日期驗證JavaScript
- 26. jquery日期驗證
- 27. 日期驗證VB6
- 28. 驗證的日期
- 29. GWT - 驗證日期
- 30. Javascript日期驗證
當存在測試日期字符串的現有方法時拋出異常似乎不雅觀。 – RedFilter 2010-09-13 18:34:06