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

回答編集履歴

1

追記

2019/01/29 02:07

投稿

yambejp
yambejp

スコア117908

answer CHANGED
@@ -22,4 +22,26 @@
22
22
  console.log(birthday+":"+(birthday.match(reg)?"ok":"ng"));
23
23
  });
24
24
  ```
25
- あとは条件次第
25
+ あとは条件次第
26
+
27
+ # 追記
28
+
29
+ > セパレータは/のみで、1992/01/01という形式のみ許可
30
+
31
+ という条件で
32
+ ```javascript
33
+ <script>
34
+ window.addEventListener('DOMContentLoaded', function(e){
35
+ document.querySelector('[name=birthday]').addEventListener('change',function(e){
36
+ var v=e.target.value;
37
+ var b=new Date(v);
38
+ var y=b.getFullYear();
39
+ var m=b.getMonth()+1;
40
+ var d=b.getDate();
41
+ var reg=new RegExp("^"+y+"/"+(m+100).toString().substr(-2)+"/"+(d+100).toString().substr(-2)+"$");
42
+ document.querySelector('#birthday_err').textContent=(v=="" || v.match(reg))?"":"err";
43
+ });
44
+ });
45
+ </script>
46
+ <input type="text" name="birthday" pattern="\d{4}/\d{2}/\d{2}" placeholder="YYYY/MM/DD" size="10" required> <span id="birthday_err"></span>
47
+ ```