Example This example uses the IsDate function to determine if several variables can be converted to dates.Dim MyDate, YourDate As Date Dim NoDate As String Dim MyCheck As Boolean MyDate = "February 12, 1969" YourDate = #2/12/1969# NoDate = "Hello" MyCheck = IsDate(MyDate) ' Returns True. MyCheck = IsDate(YourDate) ' Returns True. MyCheck = IsDate(NoDate) ' Returns False.
对tbDate进行验证var strDOB = document.all.tbDate.value ; if (strDOB != "") { var pattern = /^(\d{4})\-(\d{2})\-(\d{2}) (\d{2}):(\d{2}):(\d{2})$/ ; flag = pattern.test(strDOB); if(!flag) { document.all.tbDate.focus() ; alert("Not valid DOB"); return false ; }
} 但这个验证并不完整,符合条件的字符串不一定既是合法的时间
下面是我的一个验证日期有效性的函数,只能验证型如mm/dd/yyyy的日期,m和d可以是一位或两位。这个函数在最近几百年内是可以使用的(因为我没有验证年份最后两位是00的情况)。 function IsDate(val) { var re = new RegExp("(\d{1,2})\/(\d{1,2})\/(\d{4})"); var arr = re.exec(val) ; var mm = parseInt(RegExp.$1) ; var dd = parseInt(RegExp.$2) ; var yy = parseInt(RegExp.$3) ; if (mm>12||mm<1) return false ; if (dd<1) return false ;
if (mm == 1||mm == 3||mm == 5||mm == 7||mm == 8||mm == 10||mm == 12) { if (dd>31) return false ; } else if (mm == 2) { if (dd>29) return false ; if (yy % 4 != 0) { if (dd>28) return false ; } } else { if (dd>30) return false ; } return true ; }
强烈建议用正则表达式
This example uses the IsDate function to determine if several variables can be converted to dates.Dim MyDate, YourDate As Date
Dim NoDate As String
Dim MyCheck As Boolean
MyDate = "February 12, 1969"
YourDate = #2/12/1969#
NoDate = "Hello"
MyCheck = IsDate(MyDate) ' Returns True.
MyCheck = IsDate(YourDate) ' Returns True.
MyCheck = IsDate(NoDate) ' Returns False.
(2) String.IndexOf()
(3) vbscript:
textbox1.value.instr()函数判断出各个符号的位置,每个都是数字,并且以特定的形式分隔就成了
当然,正则表达式最好
if (strDOB != "")
{
var pattern = /^(\d{4})\-(\d{2})\-(\d{2}) (\d{2}):(\d{2}):(\d{2})$/ ;
flag = pattern.test(strDOB);
if(!flag)
{
document.all.tbDate.focus() ;
alert("Not valid DOB");
return false ;
}
}
但这个验证并不完整,符合条件的字符串不一定既是合法的时间
function IsDate(val)
{
var re = new RegExp("(\d{1,2})\/(\d{1,2})\/(\d{4})");
var arr = re.exec(val) ;
var mm = parseInt(RegExp.$1) ;
var dd = parseInt(RegExp.$2) ;
var yy = parseInt(RegExp.$3) ;
if (mm>12||mm<1)
return false ;
if (dd<1)
return false ;
if (mm == 1||mm == 3||mm == 5||mm == 7||mm == 8||mm == 10||mm == 12)
{
if (dd>31)
return false ;
}
else if (mm == 2)
{
if (dd>29)
return false ;
if (yy % 4 != 0)
{
if (dd>28)
return false ;
}
}
else
{
if (dd>30)
return false ;
}
return true ;
}