re = new RegExp("([0-3]{0,1}[1-9]{1}-[0-1]{0,1}[1-9]{1}-[1-9]{1}[0-9]{3})");
<script language=javascript> function isDate(str) { var r = str.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/); if(r==null)return false; var d = new Date(r[1], r[3]-1, r[4]); return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]); } alert(isDate("2002-01-31")); alert(isDate("2002-01-41")); </script>
<html> <head> <script lang="javascript"> function checkx() { var pattern = /([0-3]{0,1}[1-9]{1}/[0-1]{0,1}[1-9]{1}/[1-9]{1}[0-9]{3})/; 这么写不对啊。报错 var flag = pattern.test(document.form.dateEdt.value); if (flag) { return true; } else { alert('日期格式不合法,请按yyyy-mm-dd格式填写'); return false; } }</script> </head><body> <form name="form"> <input type="text" name="dateEdt"> <button onclick="checkx()">test</button> </form> </body> </html>
我的结果 var pattern = /\d{4}-((0[1-9])|(1[0-2]))-((0[1-9])|([1-2][0-9])|(3[0-1]))/;
应该是这样 var pattern = /\d{4}-((0[1-9])|(1[0-2]))-((0[1-9])|([1-2][0-9])|(3[0-1]))$/;
re = new RegExp("([0-3]{0,1}[1-9]{1}/[0-1]{0,1}[1-9]{1}/[1-9]{1}[0-9]{3})");是 yyyy/mm/ddre = new RegExp("([0-3]{0,1}[1-9]{1}-[0-1]{0,1}[1-9]{1}-[1-9]{1}[0-9]{3})");是 yyyy-mm-dd
可是,楼上的代码不能通过啊比如 1800-11-11 或 1900-11-11 或2004-11-11 都不能通过校验。怎么回事? <script lang="javascript"> function checkx() { var pattern = /([0-3]{0,1}[1-9]{1}-[0-1]{0,1}[1-9]{1}-[1-9]{1}[0-9]{3})/; // /(?:^(((1[8-9])|([2-9]\d))\d{2})-((0[1-9])|(1[0-2]))-((0[1-9])|([1-2][0-9])|(3[0-1]))$)/; var flag = pattern.test(document.form.dateEdt.value); if (flag) { return true; } else { alert('日期格式不合法,请按1800-01-01格式填写'); return false; } }</script>
function isDate(str)
{
var r = str.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
if(r==null)return false; var d = new Date(r[1], r[3]-1, r[4]);
return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]);
}
alert(isDate("2002-01-31"));
alert(isDate("2002-01-41"));
</script>
<head>
<script lang="javascript">
function checkx() {
var pattern = /([0-3]{0,1}[1-9]{1}/[0-1]{0,1}[1-9]{1}/[1-9]{1}[0-9]{3})/;
这么写不对啊。报错
var flag = pattern.test(document.form.dateEdt.value);
if (flag) {
return true;
}
else {
alert('日期格式不合法,请按yyyy-mm-dd格式填写');
return false;
} }</script>
</head><body>
<form name="form">
<input type="text" name="dateEdt">
<button onclick="checkx()">test</button>
</form>
</body>
</html>
var pattern = /\d{4}-((0[1-9])|(1[0-2]))-((0[1-9])|([1-2][0-9])|(3[0-1]))/;
var pattern = /\d{4}-((0[1-9])|(1[0-2]))-((0[1-9])|([1-2][0-9])|(3[0-1]))$/;
都不能通过校验。怎么回事?
<script lang="javascript">
function checkx() {
var pattern = /([0-3]{0,1}[1-9]{1}-[0-1]{0,1}[1-9]{1}-[1-9]{1}[0-9]{3})/;
// /(?:^(((1[8-9])|([2-9]\d))\d{2})-((0[1-9])|(1[0-2]))-((0[1-9])|([1-2][0-9])|(3[0-1]))$)/;
var flag = pattern.test(document.form.dateEdt.value);
if (flag) {
return true;
}
else {
alert('日期格式不合法,请按1800-01-01格式填写');
return false;
} }</script>