私は新しい C# 開発者で、初めて正規表現を使用しています。単純なプロジェクトの検証クラスを開発しているので、正規表現を使用して、ユーザーが入力した日付を検証するメソッドを開発しています。日付の形式は MM/DD/YYYY のみです。メソッドを開発しましたが、検証が正しくなく、その理由がわかりません。
C# 正規表現メソッドのコードは次のとおりです。
public bool ValidateDate(string dateInput)
{
Regex datePattern = new Regex("^(1[0-2]|0[1-9])/(3[01]|[12][0-9]|0[1-9])/[0-9]{4}$");
return !datePattern.IsMatch(dateInput);
}
次に、ASP.NET に次の TextBox があるため:
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
コード ビハインド:
protected void Button1_Click(object sender, EventArgs e)
{
Validator validator = new Validator();
if (TextBox1.Text.ToString() != "")
{
if (validator.ValidateDate(TextBox1.Text.ToString()))
{
lblMessage.Text = "Correct";
}
else
{
lblMessage.Text = "Incorrect";
}
}
else
{
lblMessage.Text = "Please enter a text";
}
}
このテキストボックスで検証メソッドを使用しようとすると、間違った結果が返されました。たとえば、2013 年 11 月 10 日と入力すると、正しくありません。しかし、2013/11/10に入ると正解になり、理由がわかりません
この検証方法の修正/変更を手伝っていただけませんか?