我想验证文本框,以便它只接受将来的日期。我可以使用正则表达式。
我正在使用vb.net进行编码。
感谢。
最诚挚的问候,Manoj
答案 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中进行正常的检查。无论客户端脚本结果如何,服务器检查都将始终运行。