1/// ìë¬ë©ìì§ í¬ë©§ ì ì /// 2var NO_BLANK = "{name+ìë} íìí목ì ëë¤. ë°ëì ì ë ¥íììì."; 3var NOT_VALID = "{name+ì´ê°} ì¬ë°ë¥´ì§ ììµëë¤. ë¤ì í ë² íì¸í´ 주ììì."; 4var TOO_LONG = "{name}ì 길ì´ê° ì´ê³¼ëììµëë¤."; 5 6/// ì¤í¸ë§ ê°ì²´ì ë©ìë ì¶ê° /// 7String.prototype.trim = function(str) { 8 str = this != window ? this : str; 9 return str.replace(/^\s+/g,'').replace(/\s+$/g,''); 10} 11 12String.prototype.hasFinalConsonant = function(str) { 13 str = this != window ? this : str; 14 var strTemp = str.substr(str.length-1); 15 return ((strTemp.charCodeAt(0)-16)%28!=0); 16} 17 18function josa(str,tail) { 19 return (str.hasFinalConsonant()) ? tail.substring(0,1) : tail.substring(1,2); 20} 21 22function validate(form) { 23 24 for (i = 0; i < form.elements.length; i++ ) { 25 var el = form.elements[i]; 26 el.value = el.value.trim(); 27 28 if (el.getAttribute("REQUIRED") != null) { 29 if (el.value == null || el.value == "") { 30 return doError(el,NO_BLANK); 31 } 32 } 33 34 if (el.getAttribute("MAXBYTE") != null && el.value != "") { 35 var len = 0; 36 for(j=0; j<el.value.length; j++) { 37 var str = el.value.charAt(j); 38 len += (str.charCodeAt() > 128) ? 2 : 1 39 } 40 if (len > parseInt(el.getAttribute("MAXBYTE"))) { 41 maxbyte = el.getAttribute("MAXBYTE"); 42 return doError(el,TOO_LONG); 43 } 44 } 45 46 if (el.getAttribute("OPTION") != null && el.value != "") { 47 if (!funcs[el.getAttribute("OPTION")](el)) return false; 48 } 49 } 50 return true; 51} 52 53function doError(el,type) { 54 var pattern = /{([a-zA-Z0-9_]+)\+?([ê°-í£]{2})?}/; 55 var name = (hname = el.getAttribute("HNAME")) ? hname : el.getAttribute("NAME"); 56 pattern.exec(type); 57 var tail = (RegExp.$2) ? josa(eval(RegExp.$1),RegExp.$2) : ""; 58 alert(type.replace(pattern,eval(RegExp.$1) + tail)); 59 60 focusType = el.getAttribute("FTYPE"); 61 if (focusType == null || focusType == "focus") 62 { 63 el.focus(); 64 } 65 else if (focusType == "select") 66 { 67 el.select(); 68 } 69 else if (focusType == "delete") 70 { 71 el.value = ""; 72 } 73 else if (focusType == "none") 74 { 75 } 76 77 return false; 78} 79 80/// í¹ì í¨í´ ê²ì¬ í¨ì 매í /// 81var funcs = new Array(); 82funcs['email'] = isValidEmail; 83funcs['phone'] = isValidPhone; 84funcs['userid'] = isValidUserid; 85funcs['hangul'] = hasHangul; 86funcs['number'] = isNumeric; 87funcs['engonly'] = alphaOnly; 88funcs['jumin'] = isValidJumin; 89funcs['bizno'] = isValidBizNo; 90funcs['num_per_page'] = isNumeric; 91funcs['page_per_block'] = isNumeric; 92funcs['table_width'] = isNumeric; 93funcs['new_time'] = isNumeric; 94funcs['jumin2'] = isValidJumin2; 95 96/// í¨í´ ê²ì¬ í¨ìë¤ /// 97function isValidEmail(el) { 98 var pattern = /^[_a-zA-Z0-9-\.]+@[\.a-zA-Z0-9-]+\.[a-zA-Z]+$/; 99 return (pattern.test(el.value)) ? true : doError(el,NOT_VALID); 100} 101 102function isValidUserid(el) { 103 var pattern = /^[a-zA-Z]{1}[a-zA-Z0-9_]{4,10}$/; 104 return (pattern.test(el.value)) ? true : doError(el,"{name+ìë} 5ìì´ì 11ì 미ë§ì´ì´ì¼ íê³ ,\n ì문,ì«ì, _ 문ìë§ ì¬ì©í ì ììµëë¤"); 105} 106 107function hasHangul(el) { 108 var pattern = /[ê°-í£]/; 109 return (pattern.test(el.value)) ? true : doError(el,"{name+ìë} ë°ëì íê¸ì í¬í¨í´ì¼ í©ëë¤"); 110} 111 112function alphaOnly(el) { 113 var pattern = /^[a-zA-Z]+$/; 114 return (pattern.test(el.value)) ? true : doError(el,NOT_VALID); 115} 116 117function isNumeric(el) { 118 var pattern = /^[0-9]+$/; 119 return (pattern.test(el.value)) ? true : doError(el,"{name+ìë} ë°ëì ì«ìë¡ë§ ì ë ¥í´ì¼ í©ëë¤"); 120} 121 122 123function isValidJumin(el) { 124 var pattern = /^([0-9]{6})-?([0-9]{7})$/; 125 var num = el.value; 126 if (!pattern.test(num)) return doError(el,NOT_VALID); 127 num = RegExp.$1 + RegExp.$2; 128 129 var sum = 0; 130 var last = num.charCodeAt(12) - 0x30; 131 var bases = "234567892345"; 132 for (i=0; i<12; i++) { 133 if (isNaN(num.substring(i,i+1))) return doError(el,NOT_VALID); 134 sum += (num.charCodeAt(i) - 0x30) * (bases.charCodeAt(i) - 0x30); 135 } 136 var mod = sum % 11; 137 return ((11 - mod) % 10 == last) ? true : doError(el,NOT_VALID); 138} 139 140function isValidJumin2(el) { 141 var pattern = /^([0-9]{6})-?([0-9]{7})$/; 142 var j1 = document.MakeForm.jumin1.value; 143 var j2 = document.MakeForm.jumin2.value; 144 //var num = el.value; 145 var num = j1 + j2; 146 if (!pattern.test(num)) return doError(el,NOT_VALID); 147 num = RegExp.$1 + RegExp.$2; 148 149 var sum = 0; 150 var last = num.charCodeAt(12) - 0x30; 151 var bases = "234567892345"; 152 for (i=0; i<12; i++) { 153 if (isNaN(num.substring(i,i+1))) return doError(el,NOT_VALID);
154 sum += (num.charCodeAt(i) - 0x30) * (bases.charCodeAt(i) - 0x30); 155 } 156 var mod = sum % 11; 157 return ((11 - mod) % 10 == last) ? true : doError(el,NOT_VALID); 158} 159 160function isValidBizNo(el) { 161 var pattern = /([0-9]{3})-?([0-9]{2})-?([0-9]{5})/; 162 var num = el.value; 163 if (!pattern.test(num)) return doError(el,NOT_VALID); 164 num = RegExp.$1 + RegExp.$2 + RegExp.$3; 165 var cVal = 0; 166 for (var i=0; i<8; i++) { 167 var cKeyNum = parseInt(((_tmp = i % 3) == 0) ? 1 : ( _tmp == 1 ) ? 3 : 7); 168 cVal += (parseFloat(num.substring(i,i+1)) * cKeyNum) % 10; 169 } 170 var li_temp = parseFloat(num.substring(i,i+1)) * 5 + '0'; 171 cVal += parseFloat(li_temp.substring(0,1)) + parseFloat(li_temp.substring(1,2)); 172 return (parseInt(num.substring(9,10)) == 10-(cVal % 10)%10) ? true : doError(el,NOT_VALID); 173} 174 175function isValidPhone(el) { 176 var pattern = /^([0]{1}[0-9]{1,2})-?([1-9]{1}[0-9]{2,3})-?([0-9]{4})$/; 177 if (pattern.exec(el.value)) { 178 if(RegExp.$1 == "011" || RegExp.$1 == "016" || RegExp.$1 == "017" || RegExp.$1 == "018" || RegExp.$1 == "019") { 179 el.value = RegExp.$1 + "-" + RegExp.$2 + "-" + RegExp.$3; 180 } 181 return true; 182 } else { 183 return doError(el,NOT_VALID); 184 } 185} 186 187/***********************************************************************************************************************************/ 188 189/***************** sample form ****************************************************************************************************** 190<script language="javascript" src="inc/raymond.js"></script> 191<form name="test" action="script.php" method="post" onSubmit="return validate(this)"> 192<input type="hidden" name="test" value="" FTYPE="none"> <!-- í¬ì»¤ì¤ íí --> 193ì´ë¦ : <input type='text' name="username" size='13' hname='ì´ë¦' maxbyte='10' REQUIRED> <br> 194email : <input type='text' name="email" size='40' hname='ì´ë©ì¼' maxbyte='40' option='email' REQUIRED> <br> 195주민ë²í¸ : <input type='text' name="jumin" size='13' maxlength='13' hname='주민ë²í¸' maxbyte='13' option="jumin" REQUIRED> <br> 196<input type=image src='images/write.gif' onClick='submit' align=absmiddle> 197</FORM> 198************************************************************************************************************************************/ 199 200/************* 201<fieldset> íê·¸ ë¤ì´ê°ë©´ 본 ì¤í¬ë¦½í¸ ì²ë¦¬ ìë¨ 202***************/
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.