出于好奇,有没有人会知道如何简化这个过程。 我正在写一个日期验证程序的正则表达式,它只接受mm.dd.yyyy mm/dd/yyyy或mm-dd-yyyy格式。我认为这种方式很有效,但看起来真的很好。如何简化在JavaScript中检查和报告有效日期?
function c(x, y)
{
//check that there is a date and in right order
if ((x==1) || (x==3))
{
if(y == "")
{alert("You have not entered a date");
return false;
}
var string = document.getElementById('date');
var w = string.value.search(/^(\d{2})([ ./-]{1})(\d{2})\2(\d{4})$/);
if (w != 0)
{
alert("Bad Date pattern match please redo");
return false;
}
var patt=/\d{2}/
var result=patt.exec(string.value);
if(result > 12)
{
alert("Please redo Date(Month)");
return false;
}
patt2=/([ ./-])\d{2}\1/
result=patt2.exec(string.value);
result=patt.exec(result);
if(result > 31)
{
alert("Please redo Date(Days)");
return false;
}
patt=/([ ./-])\d{4}/
result=patt.exec(string.value);
patt2=/\d{4}/
result=patt2.exec(result);
if(result > 2011)
{
alert("Please redo Date(Years)");
return false;
}
}
如果你想要细粒度的错误报告,你需要那种代码:) – alex 2011-04-25 05:47:58
@alex:澄清吗? – willis0924 2011-04-25 05:50:44