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.