-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDateValidator.html
78 lines (66 loc) · 2.31 KB
/
DateValidator.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>QUnit Example</title>
<link rel="stylesheet" href="qunit-1.14.0.css">
</head>
<body>
<div id="qunit"></div>
<div id="qunit-fixture"></div>
<script src="qunit-1.14.0.js"></script>
<script>
function testDate( sDate ){
/*
* verifica que la fecha pesea el formato correcto
* verifica que los primeros 4 caracteres deben ser números seguidos de un "-""
* luego deben haver entre 1 y 2 caracteres numericos, seguidos por un "-"
* finalmente debe terminar entre 1 y 2 caracteres también numericos
*/
var regexDate = /[0-9]{4}-[0-9]{1,2}-[0-9]{1,2}$/;
if( !regexDate.test(sDate) ){
return false;
}
// Divide the sDate sting in to an array using "-" divitions
var aDate = sDate.split("-");
// first check the length pf the array
if( aDate.length !== 3 ){
return false;
}
// Parse the number to compare
aDate[0] = parseInt(aDate[0]);
aDate[1] = parseInt(aDate[1]);
aDate[2] = parseInt(aDate[2]);
// Detetect if the date was weel write
var oDate = new Date(aDate[0],(aDate[1]-1),aDate[2]);
// Detect if the year is correct
if( oDate.getFullYear() != aDate[0] ){
return false;
}
// Detect if the month is correct
if( (oDate.getMonth()+1) != aDate[1] ){
return false;
}
// Detect if the day is correct
if( oDate.getDate() != aDate[2] ){
return false;
}
// La fecha es válida =]
return true;
}
test("Date test", function(){
equal( false,testDate("2014-02"), "Detecta fechas incompletas o mal escritas" );
equal( false,testDate("2014-02-30"),"Detecta fechas imposibles" );
equal( false,testDate("2014-12-32"),"Detecta fechas imposibles" );
equal( false,testDate("2014-13-30"),"Detecta fechas imposibles" );
equal( false,testDate("2014-12-30sdasd"),"Detecta fechas mal terminadas" );
equal( false,testDate("2014-12-30-sdasd"),"Detecta fechas mal terminadas 2" );
equal( false,testDate("2014-2-29"),"Detecta mal uso del 29 de febrero (año no viciesto)" );
equal( false,testDate("asdf-qw-tr"),"Detecta fecha no numérica" );
equal( true,testDate("2014-2-3"),"Admite fechas cortas en mes y día" );
equal( true,testDate("2014-2-10"),"Admite fechas cortas en mes" );
equal( true,testDate("2014-12-3"),"Admite fechas cortas en día" );
} )
</script>
</body>
</html>