質問編集履歴

2

追記

2018/05/24 12:21

投稿

uer03108
uer03108

スコア194

test CHANGED
File without changes
test CHANGED
@@ -52,7 +52,19 @@
52
52
 
53
53
  //日付チェックプログラム
54
54
 
55
+ var bl;
56
+
57
+
58
+
55
- var bl = ckDate("2001-12-31", "YYYY-MM-DD");
59
+ bl = ckDate("2001-12-31", "YYYY-MM-DD"); //true
60
+
61
+ bl = ckDate("2001-01-30", "YYYY-MM-DD"); //true
62
+
63
+
64
+
65
+ bl = ckDate("2001-15-41", "YYYY-MM-DD"); //false
66
+
67
+ bl = ckDate("2001-02-31", "YYYY-MM-DD"); //false
56
68
 
57
69
 
58
70
 

1

追記

2018/05/24 12:21

投稿

uer03108
uer03108

スコア194

test CHANGED
File without changes
test CHANGED
@@ -17,3 +17,125 @@
17
17
 
18
18
 
19
19
  ```
20
+
21
+
22
+
23
+
24
+
25
+ ----------------------------------------------------------------------------------------
26
+
27
+
28
+
29
+ 追記
30
+
31
+
32
+
33
+ 申し訳ありません。
34
+
35
+ 下記プログラムの一部になります。
36
+
37
+ 参考サイトのコードにフォーマットを追加したものになります。
38
+
39
+
40
+
41
+ http://www.kanaya440.com/contents/tips/javascript/003.html
42
+
43
+
44
+
45
+
46
+
47
+ ```javascript
48
+
49
+
50
+
51
+
52
+
53
+ //日付チェックプログラム
54
+
55
+ var bl = ckDate("2001-12-31", "YYYY-MM-DD");
56
+
57
+
58
+
59
+
60
+
61
+ /////////////////////////////////////////////////////////////////
62
+
63
+ //
64
+
65
+ // 日付チェックプログラム
66
+
67
+ //
68
+
69
+ /////////////////////////////////////////////////////////////////
70
+
71
+ function ckDate(datestr, format) {
72
+
73
+
74
+
75
+ //パターン
76
+
77
+ var pat = fotmat;
78
+
79
+
80
+
81
+ pat = pat.replace("YYYY", "\d{4}");
82
+
83
+ pat = pat.replace("MM" , "\d{2}");
84
+
85
+ pat = pat.replace("DD" , "\d{2}");
86
+
87
+
88
+
89
+ pat = "/^" + pat + "$/";
90
+
91
+
92
+
93
+ //書式チェック
94
+
95
+ if(!datestr.match(pat))return false; // /^\d{4}\-\d{2}\-\d{2}$/
96
+
97
+
98
+
99
+ //年月日取得
100
+
101
+ var vYear = getY(datestr, format); //年
102
+
103
+ var vMonth = getM(datestr, format); //月(0-11)
104
+
105
+ var vDay = getD(datestr, format); //日
106
+
107
+
108
+
109
+ //月日の妥当性チェック
110
+
111
+ if(vMonth >= 0 && vMonth <= 11 && vDay >= 1 && vDay <= 31){
112
+
113
+ var vDt = new Date(vYear, vMonth, vDay);
114
+
115
+ if(isNaN(vDt)){
116
+
117
+ return false;
118
+
119
+ }else if(vDt.getFullYear() == vYear && vDt.getMonth() == vMonth && vDt.getDate() == vDay){
120
+
121
+ return true;
122
+
123
+ }else{
124
+
125
+ return false;
126
+
127
+ }
128
+
129
+ }else{
130
+
131
+ return false;
132
+
133
+ }
134
+
135
+ }
136
+
137
+
138
+
139
+
140
+
141
+ ```