PageSourceSearch

http://www.jongro.co.kr/common/js/validation.js

js jongro.co.kr collected 2026-09-26 08:26:58 UTC 8,889 bytes, 271 lines download raw bytes

1// ¿¡·¯¸Þ½ÃÁö Æ÷¸ä Á¤ÀÇ ///
2var NO_BLANK_TEXT = "{name+À»¸¦} ÀÔ·ÂÇØÁÖ¼¼¿ä.";
3var NO_BLANK_SELECT = "{name+À»¸¦} ¼±ÅÃÇØÁÖ¼¼¿ä.";
4var NOT_VALID = "{name+À̰¡} ¿Ã¹Ù¸£Áö ¾Ê½À´Ï´Ù";
5var TOO_LONG = "{name}ÀÇ ±æÀ̰¡ ÃʰúµÇ¾ú½À´Ï´Ù (ÃÖ´ë {maxbyte}¹ÙÀÌÆ®)";
6var STRING_FR  = 6
7var STRING_TO  = 10
8var old_menu = '';
9var old_cell = '';
10
11/// ½ºÆ®¸µ °´Ã¼¿¡ ¸Þ¼Òµå Ãß°¡ ///
12String.prototype.trim = function(str) {
13  str = this != window ? this : str;
14  return str.replace(/^\s+/g,'').replace(/\s+$/g,'');
15}
16
17String.prototype.hasFinalConsonant = function(str) {
18  str = this != window ? this : str;
19  var strTemp = str.substr(str.length-1);
20  return ((strTemp.charCodeAt(0)-16)%28!=0);
21}
22
23String.prototype.bytes = function(str) {
24  str = this != window ? this : str;
25  var len = 0;
26  for(j=0; j<str.length; j++) {
27    var chr = str.charAt(j);
28    len += (chr.charCodeAt() > 128) ? 2 : 1
29  }
30  return len;
31}
32
33
34/// ½ÇÁúÀû Æûüũ ÇÔ¼ö ///
35function validate(form) {
36  for (i = 0; i < form.elements.length; i++ ) {
37    var el = form.elements[i];
38    if (el.tagName == "FIELDSET" || el.tagName.toLowerCase() == "object") continue;
39    el.value = el.value.trim();
40
41    var fitbyte = el.getAttribute("FITBYTE");
42    var minbyte = el.getAttribute("MINBYTE");
43    var maxbyte = el.getAttribute("MAXBYTE");
44    var option = el.getAttribute("OPTION");
45    var match = el.getAttribute("MATCH");
46    var glue = el.getAttribute('GLUE');
47
48
49    if (el.getAttribute("REQUIRED") != null) {  //Çʼö »çÇ׿¡ ´ëÇÑ Ã³¸®
50
51        if (el.type == "radio" || el.type == "checkbox"){
52            obj = eval("form." + el.name);
53            
54            bool = true;
55            for(rad = 0; rad<obj.length; rad++){
56                if(obj[rad].checked == true){
57                    bool = false;
58                }
59            }
60            
61            if(bool){
62                return doError(el,NO_BLANK_SELECT,"del");
63            }
64        }
65        else{
66          if (el.value == null || el.value == "") {
67            if(el.tagName=="SELECT") {
68                return doError(el,NO_BLANK_SELECT);
69            }
70            else {
71                return doError(el,NO_BLANK_TEXT);
72            }
73          }
74      }
75    }
76
77    if (fitbyte != null && el.value != "") {
78      // ¹®ÀÚ¿­ ±æÀÌ Ã¼Å©
79      if (el.value.length != parseInt(fitbyte))
80        return doError(el,"{name+Àº´Â} " + fitbyte + "ÀÚ¸¦ ÀÔ·ÂÇØ¾ß ÇÕ´Ï´Ù.");
81    }
82
83    if (minbyte != null && el.value != "") { //¹®ÀÚ¿­ ±æÀÌ Ã¼Å©
84      if (el.value.bytes() < parseInt(minbyte)) {
85        return doError(el,"{name+Àº´Â} ÃÖ¼Ò "+minbyte+"ÀÚ ÀÌ»ó ÀÔ·ÂÇØ¾ß ÇÕ´Ï´Ù.");
86      }
87    }
88
89    if (maxbyte != null && el.value != "") { //¹®ÀÚ¿­ ±æÀÌ Ã¼Å©
90      var len = 0;
91      if (el.value.bytes() > parseInt(maxbyte)) {
92        return doError(el,"{name}ÀÇ ±æÀ̰¡ ÃʰúµÇ¾ú½À´Ï´Ù (ÃÖ´ë "+maxbyte+"¹ÙÀÌÆ®)");
93      }
94    }
95
96    if (match && (el.value != form.elements[match].value)) return doError(el,"{name+À̰¡} ÀÏÄ¡ÇÏÁö ¾Ê½À´Ï´Ù");  //µÎ°³ÀÇ ¹®ÀÚ¿­ ÀÏÄ¡ üũ
97
98    if (option != null && el.value.length > 0) {   /// Ư¼ö ÆÐÅÏ °Ë»ç ÇÔ¼ö Æ÷¿öµù ///
99      if (el.getAttribute('SPAN') != null) {
100        var _value = new Array();
101        for (span=0; span<el.getAttribute('SPAN');span++ ) {
102          _value[span] = form.elements[i+span].value;
103        }
104        var value = _value.join(glue == null ? '' : glue);
105        if (!funcs[option](el,value)) return false;
106      } else {
107        if (!funcs[option](el)) return false;
108      }
109    }
110  }
111  return true;
112}
113
114
115// Textarea ±ÛÀÚ¼ö Á¶Àý
116// ÀԷ¿¹Á¦ <textarea onKeyPress="fnChkRemark(this,'50')">  -- fnChkRemark(ÅØ½ºÆ®°ª, ÀÚ¸´¼ö)
117function fnChkRemark(obj, strCnt) {
118  var strtempRemark = obj.value;
119  var len = 0;
120  var tString = '';
121  for(j=0; j< strtempRemark.length; j++) {
122    var chr = strtempRemark.charAt(j);
123    len += (chr.charCodeAt() > 128) ? 2 : 1;
124    if (len <= strCnt)
125      tString += chr;
126  }
127  if (len >= strCnt) {
128    alert(strCnt + 'ÀÚ ÀÌÇÏ·Î ÀÔ·ÂÇØ ÁÖ¼¼¿ä. ');
129    try { obj.focus(); } catch (e) {}
130    obj.value = tString;
131    return false;
132  }
133}
134
135
136function josa(str,tail) {
137  return (str.hasFinalConsonant()) ? tail.substring(0,1) : tail.substring(1,2);
138}
139
140
141function doError(el,type,action) { //¿¡·¯ ó¸® ÇÔ¼ö
142  var pattern = /{([a-zA-Z0-9_]+)\+?([°¡-Èþ]{2})?}/;
143  var name = (hname = el.getAttribute("HNAME")) ? hname : el.getAttribute("NAME");
144  pattern.exec(type);
145  var tail = (RegExp.$2) ? josa(eval(RegExp.$1),RegExp.$2) : "";
146  alert(type.replace(pattern,eval(RegExp.$1) + tail));
147  if (action == "sel") {
148    el.select();
149  } else if (action == "del")  {
150    el.value = "";
151  }
152  try { el.focus(); } catch (e) {}
153  return false;
154}
155
156/// Ư¼ö ÆÐÅÏ °Ë»ç ÇÔ¼ö ¸ÅÇÎ ///
157var funcs = new Array();
158funcs['email'] = isValidEmail;
159funcs['phone'] = isValidPhone;
160funcs['userid'] = isValidUserid;
161funcs['pass'] = isValidPass;
162funcs['pass2'] = isValidPass2;
163funcs['hangul'] = hasHangul;
164funcs['number'] = isNumeric;
165funcs['engonly'] = alphaOnly;
166funcs['jumin'] = isValidJumin;
167funcs['bizno'] = isValidBizNo;
168funcs['domain'] = isValidDomain;
169
170
171/// ÆÐÅÏ °Ë»ç ÇÔ¼öµé ///
172function isValidEmail(el,value) {
173  var value = value ? value : el.value;
174  var pattern = /^[_a-zA-Z0-9-\.]+@[\.a-zA-Z0-9-]+\.[a-zA-Z]+$/;
175  return (pattern.test(value)) ? true : doError(el,NOT_VALID);
176}
177
178function isValidUserid(el) {
179  var pattern = /^[a-zA-Z0-9]{1}[a-zA-Z0-9-_]{5,11}$/;
180  return (pattern.test(el.value)) ? true : doError(el,"{name+Àº´Â} 6ÀÚÀÌ»ó 12ÀÚ ÀÌÇÏÀ̾î¾ß Çϰí,\n\n¿µ¹®, ¼ýÀÚ, Ư¼ö¹®ÀÚ(- _)¸¸ Çã¿ëÇÕ´Ï´Ù.");
181}
182function isValidPass(el) {
183  var pattern = /^[a-zA-Z0-9]{1}[a-zA-Z0-9-_]{5,11}$/;
184  return (pattern.test(el.value)) ? true : doError(el,"{name+Àº´Â} 6ÀÚÀÌ»ó 12ÀÚ ÀÌÇÏÀ̾î¾ß Çϰí,\n\n¿µ¹®, ¼ýÀÚ, Ư¼ö¹®ÀÚ(- _)¸¸ Çã¿ëÇÕ´Ï´Ù.");
185}
186function isValidPass2(el) {
187  var pattern = /^[a-zA-Z0-9]{1}[a-zA-Z0-9]{3,11}$/;
188  return (pattern.test(el.value)) ? true : doError(el,"{name+Àº´Â} 4ÀÚÀÌ»ó 12ÀÚ ÀÌÇÏÀ̾î¾ß Çϰí,\n\n¿µ¹®, ¼ýÀÚ¸¸ Çã¿ëÇÕ´Ï´Ù.");
189}
190
191function hasHangul(el) {
192  var pattern = /^[°¡-Èþ]+$/;
193  return (pattern.test(el.value)) ? true : doError(el,"{name+Àº´Â} ¹Ýµå½Ã Çѱ۷θ¸ ÀÔ·ÂÇØ¾ß ÇÕ´Ï´Ù");
194}
195
196function alphaOnly(el) {
197  var pattern = /^[a-zA-Z/ ]+$/;
198  return (pattern.test(el.value)) ? true : doError(el,"{name+Àº´Â} ¹Ýµå½Ã ¿µ¹®À¸·Î¸¸ ÀÔ·ÂÇØ¾ß ÇÕ´Ï´Ù");
199}
200
201function isNumeric(el) {
202  var pattern1 = /^[0-9]+$/;
203  var pattern2 = /^[0-9]+\.[0-9]+$/;
204
205  if(el.value.indexOf(".")<0){
206    return (pattern1.test(el.value)) ? true : doError(el,"{name+Àº´Â} ¹Ýµå½Ã ¼ýÀÚÇü½Ä¸¸ ÀÔ·ÂÇØ¾ß ÇÕ´Ï´Ù");
207  } else {
208    return (pattern2.test(el.value)) ? true : doError(el,"{name+Àº´Â} ¹Ýµå½Ã ¼ýÀÚÇü½Ä¸¸ ÀÔ·ÂÇØ¾ß ÇÕ´Ï´Ù");
209  }
210}
211
212function isValidJumin(el,value) { //ÁֹιøÈ£ üũ
213    var pattern = /^([0-9]{6})-?([0-9]{7})$/;
214  var num = value ? value : el.value;
215    if (!pattern.test(num)) return doError(el,NOT_VALID);
216    num = RegExp.$1 + RegExp.$2;
217
218  var sum = 0;
219  var last = num.charCodeAt(12) - 0x30;
220  var bases = "234567892345";
221  for (var i=0; i<12; i++) {
222    if (isNaN(num.substring(i,i+1))) return doError(el,NOT_VALID);
223    sum += (num.charCodeAt(i) - 0x30) * (bases.charCodeAt(i) - 0x30);
224  }
225  var mod = sum % 11;
226  return ((11 - mod) % 10 == last) ? true : doError(el,NOT_VALID);
227}
228
229function isValidBizNo(el, value) { //»ç¾÷¹øÈ£ üũ
230    var pattern = /([0-9]{3})-?([0-9]{2})-?([0-9]{5})/;
231  var num = value ? value : el.value;
232    if (!pattern.test(num)) return doError(el,NOT_VALID);
233    num = RegExp.$1 + RegExp.$2 + RegExp.$3;
234    var cVal = 0;
235    for (var i=0; i<8; i++) {
236        var cKeyNum = parseInt(((_tmp = i % 3) == 0) ? 1 : ( _tmp  == 1 ) ? 3 : 7);
237        cVal += (parseFloat(num.substring(i,i+1)) * cKeyNum) % 10;
238    }
239    var li_temp = parseFloat(num.substring(i,i+1)) * 5 + '0';
240    cVal += parseFloat(li_temp.substring(0,1)) + parseFloat(li_temp.substring(1,2));
241    return (parseInt(num.substring(9,10)) == 10-(cVal % 10)%10) ? true : doError(el,NOT_VALID);
242}
243
244function isValidPhone(el,value) {//ÀüÈ­¹øÈ£
245  var pattern = /^[0-9]+$/;
246  var num = value ? value : el.value;
247  if (num == null || num == "") {
248    return doError(el,NO_BLANK);
249  }
250  else {
251
252  return (pattern.test(num)) ? true : doError(el,"{name+Àº´Â} ¹Ýµå½Ã ¼ýÀڷθ¸ ÀÔ·ÂÇØ¾ß ÇÕ´Ï´Ù");
253  }
254}
255
256
257function isValidDomain(el) { //µµ¸ÞÀΠüũ
258  var pattern = /^.+(\.[a-zA-Z]{2,3})$/;
259  return (pattern.test(el.value)) ? true : doError(el,NOT_VALID);
260}
261
262function isValidDomain(el,value) { //µµ¸ÞÀΠüũ
263  var value = value ? value : el.value;
264  var pattern = new RegExp("^(http://)?(www\.)?([°¡-Èþa-zA-Z0-9-]+\.[a-zA-Z]{2,3}$)","i");
265  if (pattern.test(value)) {
266    el.value = RegExp.$3;
267    return true;
268  } else {
269    return doError(el,NOT_VALID);
270  }
271}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.