/**
*校验字符串是否为日期型
*返回值:
*如果为空,定义校验通过, 返回true
*如果字串为日期型,校验通过, 返回true
*如果日期不合法, 返回false 参考提示信息:输入域的时间不合法!(yyyy-MM-dd)
*/
function checkIsValidDate(str)
{
//如果为空,则通过校验
if(str == "")
return true; var pattern = /^((\d{4})|(\d{2}))-(\d{1,2})-(\d{1,2})$/g;
if(!pattern.test(str))
return false;
var arrDate = str.split("-");
if(parseInt(arrDate[0],10) < 100)
arrDate[0] = 2000 + parseInt(arrDate[0],10) + "";
var date = new Date(arrDate[0],(parseInt(arrDate[1],10) -1)+"",arrDate[2]);
if(date.getYear() == arrDate[0]
&& date.getMonth() == (parseInt(arrDate[1],10) -1)+""
&& date.getDate() == arrDate[2])
return true;
else
return false;
}//~~~
usage:if(checkIsValidDate("2004-12-12"))
alert("yes");
*校验字符串是否为日期型
*返回值:
*如果为空,定义校验通过, 返回true
*如果字串为日期型,校验通过, 返回true
*如果日期不合法, 返回false 参考提示信息:输入域的时间不合法!(yyyy-MM-dd)
*/
function checkIsValidDate(str)
{
//如果为空,则通过校验
if(str == "")
return true; var pattern = /^((\d{4})|(\d{2}))-(\d{1,2})-(\d{1,2})$/g;
if(!pattern.test(str))
return false;
var arrDate = str.split("-");
if(parseInt(arrDate[0],10) < 100)
arrDate[0] = 2000 + parseInt(arrDate[0],10) + "";
var date = new Date(arrDate[0],(parseInt(arrDate[1],10) -1)+"",arrDate[2]);
if(date.getYear() == arrDate[0]
&& date.getMonth() == (parseInt(arrDate[1],10) -1)+""
&& date.getDate() == arrDate[2])
return true;
else
return false;
}//~~~
usage:if(checkIsValidDate("2004-12-12"))
alert("yes");
re=/^[12]{1}(\d){3}[-][01]?(\d){1}[-][0123]?(\d){1}$/
<script language="javascript">
re=/^[12]{1}(\d){3}[-][01]?(\d){1}[-][0123]?(\d){1}$/;
alert(re.test("2004-8-1"));
alert(re.test("2004-08-01"));
alert(re.test("2004-8-12"));
alert(re.test("2004-11-1"));
alert(re.test("2004-22-42"));
</script>
<script language="javascript">
re=/^[12]{1}(\d){3}[-][01]?(\d){1}[-][0123]?(\d){1}$/;
testalert(re.test("2004-8-1"));
testalert(re.test("2004-08-01"));
testalert(re.test("2004-8-12"));
testalert(re.test("2004-11-1"));
testalert(re.test("2004-22-42"));function testalert(obj)
{
if (obj) alert("数据合法!");
else
alert("数据不合法!");
}
</script>
function isDate(str)
{
var d = new Date(str)
return !isNaN(d)
}
</script>
{
var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/;
result = str.match(reg);
if(result == null)return false;
var d = new Date(result[1],result[3]-1,result[4])
var newStr = d.getFullYear()+result[2]+(d.getMonth()+1)+result[2]+d.getDate();
return str == newStr
}
{
hdate=new Date(str)
}
catch(e)
{
alert('错误');
}
String.prototype.IsDate=function()
{
var str=this;
var reg =/^(\d+)-(\d{1,2})-(\d{1,2})$/;
var r=str.match(reg);
if(r==null)return false;
r[2]=r[2]-1;
var d=new Date(r[1],r[2],r[3]);
if(d.getFullYear()!=r[1])return false;
if(d.getMonth()!=r[2])return false;
if(d.getDate()!=r[3])return false;
return true;
}
</script>