[英]Regular expression for date validation
我在驗證日期時遇到問題,在我的代碼中,我使用了一個接受2012年日期的正則表達式,如果我將yr設為2013年,則該日期表示“無效日期”。 在這方面請幫助我。 它應該接受任何年份。.我的意思是至少從2000年到3000年為有效年份。在此先感謝。
function checkDates(){
var sdate = "2013-01-02";
var edate = "2013-01-02";
if (!isValidDate(sdate)) {
alert("Report Start Date is Invalid!!");
return false;
}
if (!isValidDate(edate)) {
alert("Report End Date is Invalid!!");
return false;
}
return true;
}
function isValidDate(sText) {
var reDate = /(?:([0-9]{4}) [ -](0[1-9]|[12][0-9]|3[01])[ -]0[1-9]|1[012])/; // yy/mm/dd
return reDate.test(sText);
}
正則表達式中有多余的空間,缺少括號(括號問題使它接受2012-aa-xx
日期:
/(?:([0-9]{4}) [ -](0[1-9]|[12][0-9]|3[01])[ -]0[1-9]|1[012])/
^ ^
-------------/-------------------------------/
所以:
([0-9]{4}[ -](0[1-9]|[12][0-9]|3[01])[ -](0[1-9]|1[012]))
下面的表達式也適用
/(?:19|20\d{2})\-(?:0[1-9]|1[0-2])\-(?:0[1-9]|[12][0-9]|3[01])/
謝謝,Dhiraj
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.