出於好奇,有沒有人會知道如何簡化這個過程。 我正在寫一個日期驗證程序的正則表達式,它只接受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