質問するログイン新規登録

質問編集履歴

2

追記

2018/05/24 12:21

投稿

uer03108
uer03108

スコア194

title CHANGED
File without changes
body CHANGED
@@ -25,9 +25,15 @@
25
25
 
26
26
 
27
27
  //日付チェックプログラム
28
- var bl = ckDate("2001-12-31", "YYYY-MM-DD");
28
+ var bl;
29
29
 
30
+ bl = ckDate("2001-12-31", "YYYY-MM-DD"); //true
31
+ bl = ckDate("2001-01-30", "YYYY-MM-DD"); //true
30
32
 
33
+ bl = ckDate("2001-15-41", "YYYY-MM-DD"); //false
34
+ bl = ckDate("2001-02-31", "YYYY-MM-DD"); //false
35
+
36
+
31
37
  /////////////////////////////////////////////////////////////////
32
38
  //
33
39
  // 日付チェックプログラム

1

追記

2018/05/24 12:21

投稿

uer03108
uer03108

スコア194

title CHANGED
File without changes
body CHANGED
@@ -7,4 +7,65 @@
7
7
  var m = getM("2001-12-31", "YYYY-MM-DD"); //12
8
8
  var d = getD("2001-12-31", "YYYY-MM-DD"); //31
9
9
 
10
+ ```
11
+
12
+
13
+ ----------------------------------------------------------------------------------------
14
+
15
+ 追記
16
+
17
+ 申し訳ありません。
18
+ 下記プログラムの一部になります。
19
+ 参考サイトのコードにフォーマットを追加したものになります。
20
+
21
+ http://www.kanaya440.com/contents/tips/javascript/003.html
22
+
23
+
24
+ ```javascript
25
+
26
+
27
+ //日付チェックプログラム
28
+ var bl = ckDate("2001-12-31", "YYYY-MM-DD");
29
+
30
+
31
+ /////////////////////////////////////////////////////////////////
32
+ //
33
+ // 日付チェックプログラム
34
+ //
35
+ /////////////////////////////////////////////////////////////////
36
+ function ckDate(datestr, format) {
37
+
38
+ //パターン
39
+ var pat = fotmat;
40
+
41
+ pat = pat.replace("YYYY", "\d{4}");
42
+ pat = pat.replace("MM" , "\d{2}");
43
+ pat = pat.replace("DD" , "\d{2}");
44
+
45
+ pat = "/^" + pat + "$/";
46
+
47
+ //書式チェック
48
+ if(!datestr.match(pat))return false; // /^\d{4}\-\d{2}\-\d{2}$/
49
+
50
+ //年月日取得
51
+ var vYear = getY(datestr, format); //年
52
+ var vMonth = getM(datestr, format); //月(0-11)
53
+ var vDay = getD(datestr, format); //日
54
+
55
+ //月日の妥当性チェック
56
+ if(vMonth >= 0 && vMonth <= 11 && vDay >= 1 && vDay <= 31){
57
+ var vDt = new Date(vYear, vMonth, vDay);
58
+ if(isNaN(vDt)){
59
+ return false;
60
+ }else if(vDt.getFullYear() == vYear && vDt.getMonth() == vMonth && vDt.getDate() == vDay){
61
+ return true;
62
+ }else{
63
+ return false;
64
+ }
65
+ }else{
66
+ return false;
67
+ }
68
+ }
69
+
70
+
10
71
  ```