메뉴 건너뛰기

조회 수 7317 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

키 입력을 감지해서 허용되지 않은 입력값을 바로바로 잡아주는 예제이다.

 

 

예를 들면 전화번호를 입력 받는 곳에 꼭 문자를 집어넣는 애들이 있다.

 

강제로 jquery 를 이용해서 함수를 바인드해놓고

 

포커스와 포커스 아웃을 이용해서 자동으로 문자 하나 하나 입력이 들어왔을 때 체킹하고 잘못된 입력은 삭제하는  방법이다.

 

 

 

 

1. 사용방법은 단순히 체크하고 싶은 클레스만 지정해주면 된다.

<input id="nNum" type="text" class="number">
<input id="nNum" type="text" class="onlyEnglishUpper">

 

 

 

 


 

2. js 파일을 만들어서 import한다.

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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
/*
    *
    * jquery class선택자를 이용하여 자동 formatter구현
    */
   // 0) common
   function addComma(str) {
       if (str == null) {
           return "";
       }
       str = removeComma(str);
       x = str.split(".");// 소수부분리
       x1 = x[0];
       x2 = x.length > 1 ? "." + x[1] : "";
       var regex = /(\d+)(\d{3})/;
       while (regex.test(x1)) {
           x1 = x1.replace(regex, "$1" + "," + "$2");
       }
       return x1 + x2;
   }
 
   function removeComma(str) {
       str += "";
       var regex = /,/g;
       return str.replace(regex, "");
   }
 
   function formatComma(e) {
       if (keyFilter(e)) {
           $(this).val(addComma($(this).val()));
       }
   }
 
   function formatSelect() {
       $(this).select();
   }
 
   // <-(37) , ->(39)를 제외한 keyup에서만 동작
   function keyFilter(e) {
       if (e.keyCode == 37 || e.keyCode == 39)
           return false;
       else
           return true;
   }
   /**
    * flag : g = global, i = ignore case, m = multiline ^ =
    */
   // 1) money - 100,000
   function restrictMoney(e) {
       if (keyFilter(e)) {
           var regex = /[^0-9]/g;
           $(this).val($(this).val().replace(regex, ""));
       }
   }
 
   // 2) number - 100,000.00
   function restrictNumber(e) {
       if (keyFilter(e)) {
           var regex = /[^0-9\.]/g;
           $(this).val($(this).val().replace(regex, ""));
       }
   }
 
   // 3) decimal - 100000.00
   function restrictDecimal(e) {
       if (keyFilter(e)) {
           var regex = /[^0-9\.]/g;
           $(this).val($(this).val().replace(regex, ""));
       }
   }
 
   // 4) onlyNumber - 1234567890
   function restrictOnlyNumber(e) {
       if (keyFilter(e)) {
           var regex = /[^0-9]/g;
           $(this).val($(this).val().replace(regex, ""));
       }
   }
   // 5) onlyEnglish - a-z,A-Z
   function restrictOnlyEnglish(e) {
       if (keyFilter(e)) {
           var regex = /[^a-z]/gi;
           $(this).val($(this).val().replace(regex, ""));
       }
   }
   // 5-1) onlyEnglishUpper - A-Z
   function restrictOnlyEnglishUpper(e) {
       if (keyFilter(e)) {
           var regex = /[^a-z]/gi;
           $(this).val($(this).val().replace(regex, "").toUpperCase());
       }
   }
   // 5-2) onlyEnglishLower - a-z
   function restrictOnlyEnglishLower(e) {
       if (keyFilter(e)) {
           var regex = /[^a-z]/gi;
           $(this).val($(this).val().replace(regex, "").toLowerCase());
       }
   }
   // 6) forCode - 0-9,A-Z
   function restrictForCode(e) {
       if (keyFilter(e)) {
           var regex = /[^0-9a-z\_]/gi;
           $(this).val($(this).val().replace(regex, "").toUpperCase());
       }
   }
   // 7) forId - 0-9,A-Z,특수문자(_-!@#$%^)
   function restrictForId(e) {
       if (keyFilter(e)) {
           var regex = /[^0-9a-z\_\-\!\@\#\$\%\^]/gi;
           $(this).val($(this).val().replace(regex, ""));
       }
   }
 
   // 파일 확장자 체크
   function restrictFileExtension(e) {
       var ext = $(this).val().split('.').pop().toLowerCase();
 
       if ($.inArray(ext, [ 'exe', 'bat', 'sh' ]) > 0) {
           $(this).replaceWith($(this).clone(true));
           // $(this).val("");
 
           alert('허용되지 않는 확장자입니다.');
       } // end if $.inArray(ext, ['exe', 'bat', 'sh']) > 0
   }
 
   //파일 확장자 체크 Img
   function restrictFileExtensionImg(e) {
       var ext = $(this).val().split('.').pop().toLowerCase();
 
       if ($.inArray(ext, [ 'gif', 'png', 'jpg', 'jpeg' ]) == -1) { // 허용하는 확장자가 작을 경우
           $(this).replaceWith($(this).clone(true));
           // $(this).val("");
 
           alert('허용되지 않는 확장자입니다.');
       } // end if $.inArray(ext, ['gif', 'png', 'jpg', 'jpeg']) == -1
   }
 
   // 99) class선택자로 keyup이벤트에 자동 바인딩
   $(document).ready(function() {
       // money
       $(".money").bind("keyup", restrictMoney);
       $(".money").bind("keyup", formatComma);
       $(".money").bind("focus", formatSelect);
 
       $(".money").bind("blur", restrictMoney);
       $(".money").bind("blur", formatComma);
       // number
       $(".number").bind("keyup", restrictNumber);
       $(".number").bind("keyup", formatComma);
       $(".number").bind("focus", formatSelect);
 
       $(".number").bind("blur", restrictNumber);
       $(".number").bind("blur", formatComma);
       // decimal
       $(".decimal").bind("keyup", restrictDecimal);
       $(".decimal").bind("focus", formatSelect);
 
       $(".decimal").bind("blur", restrictDecimal);
       // onlyNumber
       $(".onlyNumber").bind("keyup", restrictOnlyNumber);
       $(".onlyNumber").bind("focus", formatSelect);
 
       $(".onlyNumber").bind("blur", restrictOnlyNumber);
       // onlyEnglish
       $(".onlyEnglish").bind("keyup", restrictOnlyEnglish);
       $(".onlyEnglish").bind("focus", formatSelect);
 
       $(".onlyEnglish").bind("blur", restrictOnlyEnglish);
       // onlyEnglishUpper
       $(".onlyEnglishUpper").bind("keyup", restrictOnlyEnglishUpper);
       $(".onlyEnglishUpper").bind("focus", formatSelect);
 
       $(".onlyEnglishUpper").bind("blur", restrictOnlyEnglishUpper);
       // onlyEnglishLower
       $(".onlyEnglishLower").bind("keyup", restrictOnlyEnglishLower);
       $(".onlyEnglishLower").bind("focus", formatSelect);
 
       $(".onlyEnglishLower").bind("blur", restrictOnlyEnglishLower);
       // forCode
       $(".forCode").bind("keyup", restrictForCode);
       $(".forCode").bind("focus", formatSelect);
 
       $(".forCode").bind("blur", restrictForCode);
       // forId
       $(".forId").bind("keyup", restrictForId);
       $(".forId").bind("focus", formatSelect);
 
       $(".forId").bind("blur", restrictForId);
 
       $(".fileExtension").bind("change", restrictFileExtension);
       $(".fileExtensionImg").bind("change", restrictFileExtensionImg);
   });



하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

나눔고딕 사이트로 가기

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5