谁帮我写个验证日期的正则表达式

来源:百度知道 编辑:UC知道 时间:2024/05/22 14:00:58
要求日期格式为yyyy-mm-dd,而且要能够验证日期的正确性的,在线等,请高手指点啊
function testdate(op){
var pattern=(19|20)\d{2}-(0[123456789]|1[012])-(0[123456789]|[12]\d|3[01]);
var str=document.getElementById(op).value;
if(!pattern.test(str))
{alert("日期格式错误!");}
}
这是我根据你的写的,你看看对不对,op是空间的ID属性值,代码本身就报错

/^(19|20)\d{2}-(0?\d|1[012])-(0?\d|[12]\d|3[01])$/;
这个是1900-2099,简单验证1-12月,1-31日,对于2月30这样的不管。如果都验证,这个正则表达式会很长,你看懂这个自己就会改了。例如:
<html>
<body>
<script language="javascript">
<!--
function test()
{
var pattern=/^(19|20)\d{2}-(0?\d|1[012])-(0?\d|[12]\d|3[01])$/;
var str=document.getElementById("str").value;
if(pattern.test(str)){alert("True!");}
else{alert("False!");}
}
-->
</script>
<input type="text" id="str">
<input type="button" value="Test" onclick="test()">
</body>
</html>

(19|20)\d{2}-(0[123456789]|1[012])-(0[123456789]|[12]\d|3[01])

日期验证
匹配形式如:20030718,030718
范围:1900--2099
正则表达式((((19){1}|(20){1})d{2})|d{2})[01]{1}d{1}[0-3]{1}d{1}

验证日期有专门的方法,用正则是很不方便的。