TECHNOLOGIES
FORUMS
JOBS
BOOKS
EVENTS
INTERVIEWS
Live
MORE
LEARN
Training
CAREER
MEMBERS
VIDEOS
NEWS
BLOGS
Sign Up
Login
No unread comment.
View All Comments
No unread message.
View All Messages
No unread notification.
View All Notifications
C# Corner
Post
An Article
A Blog
A News
A Video
An EBook
An Interview Question
Ask Question
Check for Valid Date using JavaScript
Ivin Raj S
May 15, 2020
5.9
k
0
1
facebook
twitter
linkedIn
Reddit
WhatsApp
Email
Bookmark
Check for valid date using JavaScript. below is the full code.
Check for valid date using JavaScript. below is the full code.
<
head
id
=
"Head1"
runat
=
"server"
>
<
title
>
Untitled Page
</
title
>
<
script
language
=
"javascript"
type
=
"text/javascript"
>
// Declaring valid date character, minimum year and maximum year
var
dtCh
=
"/"
;
var
minYear
=
1900
;
var
maxYear
=
2100
;
function isInteger(s) {
var i;
for (
i
=
0
; i
<
s.length
; i++) {
// Check that current character is number.
var
c
=
s
.charAt(i);
if (((c
<
"0") || (c
>
"9"))) return false;
}
// All characters are numbers.
return true;
}
function stripCharsInBag(s, bag) {
var i;
var
returnString
=
""
;
// Search through string's characters one by one.
// If character is not in bag, append to returnString.
for (
i
=
0
; i
<
s.length
; i++) {
var
c
=
s
.charAt(i);
if (bag.indexOf(c) == -1) returnString += c;
}
return returnString;
}
function daysInFebruary(year) {
// February has 29 days in any year evenly divisible by four,
// EXCEPT for centurial years which are not also divisible by 400.
return (((year %
4
== 0) && ((!(year %
100
== 0)) || (year %
400
== 0))) ? 29 : 28);
}
function DaysArray(n) {
for (var
i
=
1
; i
<
= n; i++) {
this[i] = 31
if (
i
== 4 ||
i
== 6 ||
i
== 9 ||
i
== 11) { this[i] = 30 }
if (
i
== 2) { this[i] = 29 }
}
return this
}
function isDate(dtStr) {
var
daysInMonth
=
DaysArray
(12)
var
pos1
=
dtStr
.indexOf(dtCh)
var
pos2
=
dtStr
.indexOf(dtCh, pos1 + 1)
var
strMonth
=
dtStr
.substring(0, pos1)
var
strDay
=
dtStr
.substring(pos1 + 1, pos2)
var
strYear
=
dtStr
.substring(pos2 + 1)
strYr
=
strYear
if (strDay.charAt(0) == "0" && strDay.length
>
1)
strDay
strDay
= strDay.substring(1)
if (strMonth.charAt(0) == "0" && strMonth.length
>
1)
strMonth
strMonth
= strMonth.substring(1)
for (var
i
=
1
; i
<
= 3; i++) {
if (strYr.charAt(0) == "0" && strYr.length
>
1)
strYr
strYr
= strYr.substring(1)
}
month
=
parseInt
(strMonth)
day
=
parseInt
(strDay)
year
=
parseInt
(strYr)
if (
pos1
== -1 ||
pos2
== -1) {
alert("The date format should be : mm/dd/yyyy")
return false
}
if (strMonth.length
<
1
|| month
<
1
|| month
>
12) {
alert("Please enter a valid month")
return false
}
if (strDay.length
<
1
|| day
<
1
|| day
>
31 || (
month
== 2 && day
>
daysInFebruary(year)) || day
>
daysInMonth[month]) {
alert("Please enter a valid day")
return false
}
if (strYear.length != 4 ||
year
== 0 || year
<
minYear
|| year
>
maxYear) {
alert("Please enter a valid 4 digit year between " + minYear + " and " + maxYear)
return false
}
if (dtStr.indexOf(dtCh, pos2 + 1) != -1 || isInteger(stripCharsInBag(dtStr, dtCh)) == false) {
alert("Please enter a valid date")
return false
}
return true
}
function ValidateForm() {
var dt;
dt
=
document
.getElementById('txtDate');
if (isDate(dt.value) == false) {
dt.focus()
return false
}
return true
}
</
script
>
</
head
>
<
body
>
<
form
id
=
"form2"
runat
=
"server"
>
<
div
>
<
asp:TextBox
ID
=
"txtDate"
runat
=
"server"
>
</
asp:TextBox
>
<
asp:Button
ID
=
"Button1"
runat
=
"server"
Text
=
"Button"
OnClientClick
=
"ValidateForm()"
/>
</
div
>
</
form
>
</
body
>
Check for Valid Date using JavaScript
Next Recommended Reading
Birth Date Validation in JavaScript