VB.NET正则表达式为将来的日期

时间:2009-08-31 12:44:43

标签: vb.net

我想验证文本框,以便它只接受将来的日期。我可以使用正则表达式。

我正在使用vb.net进行编码。

感谢。

最诚挚的问候,Manoj

2 个答案:

答案 0 :(得分:5)

为什么要使用正则表达式?将用户输入的日期解析为DateTime然后将其与DateTime.Now进行比较以确保它更大是不是更容易?

以下是一个例子:

Imports System

Class Test
    Private Shared Sub Main()
        Console.WriteLine(isFutureDate("5/16/1984"))
        Console.WriteLine(isFutureDate("5/16/2010"))
    End Sub
    
    Private Shared Function isFutureDate(ByVal candidate As String) As Boolean
        Dim future As DateTime
        
        DateTime.TryParse(candidate, future)
        
        Return future > DateTime.Now
    End Function
End Class

答案 1 :(得分:2)

我认为你想要一个正则表达式,所以你可以让它有效的客户端?您最好使用自定义验证器,包括服务器端和客户端代码。您可以使用自定义验证程序上的ClientValidationFunction属性设置客户端代码。

对于客户端代码,您可以在页面中嵌入类似以下脚本的内容(从我的头顶开始,未检查)

<script language="JavaScript">
<!--
  function CheckPrime(sender, args)
  {
    var currentDate = new Date();
    var enteredDate = new Date(args.Value);

    if (enteredDate > currentDate)
      args.IsValid = true;
    else
      args.IsValid = false;
  }
// -->
</script>

对于服务器端,您可以在VB中进行正常的检查。无论客户端脚本结果如何,服务器检查都将始终运行。