1//<script type="text/javascript" src="enums.htm"></script> 2//<script type="text/javascript" src="https://code.jquery.com/jquery-1.12.0.js"></script> 3//<script type="text/javascript"> 4//<![CDATA[ 5jQuery.extend({ 6 "patterns": { 7 "id": /^[a-z0-9_]{5,20}$/, 8 "pwd": /^(?=.*[a-zA-Z])(?=.*[!@#$%^*+=-])(?=.*[0-9]).{6,14}$/, 9 "rrn": /^\d{6}-\d{7}$/, 10 "email": /^\w+(?:[-.]\w+)*@\w+(?:[-.]\w+)*\.[a-zA-Z]{2,5}$/i, 11 "date": /^(?:19|20)\d{2}[\-\/\.]+(?:0?\d|1[0-2])[\-\/\.]+(?:0?\d|[1-2]\d|3[0-1])(?:\s+(?:0?\d|1\d|2[0-3])(?::(?:0?\d|[1-5]\d)){0,2})?$/, 12 "time": /^(?:[01]?\d|2[0-4])(?::(?:[0-5]?\d)){0,2}$/, 13 "ssi": /^(?:s?html?|cgi|[aj]s[apchm]x?|exe|dll|php\d?|bat|com|[cj]s|vbs?|msi|sys|ocx|msc|cmd|axd|master|java|htw|exclude|cdx|cer|config|webinfo)$/i, 14 "xss": /<\/?(?:script|iframe)\s[^>]*>?|\son[cbfklmrsu][a-z]+\s*=/i, 15 "tag": /<\/?[a-z][^>]*>/gi, 16 "phone": /\+?\d+(?:-\d+)+(?:,d+)?/, 17 "url": /^(?:https?|ftps?|rtsp?):\/\/(?:[a-z\d-]+\.)+[a-z\d]{2,4}.*$/i 18 }, 19 "unselectable": function () { 20 this.bind("selectstart.jq", function () { return false; }) 21 .css({ "MozUserSelect": "none", "KhtmlUserSelect": "none" }) 22 .get(0).unselectable = "on"; 23 }, 24 "selectable": function () { 25 this.unbind("selectstart.jq") 26 .css({ "MozUserSelect": "text", "KhtmlUserSelect": "text" }) 27 .get(0).unselectable = "off"; 28 }, 29 "jsString": function (value) { 30 return value 31 .replace(/\\/g, "\\\\") 32 .replace(/\r/g, "\\r") 33 .replace(/\n/g, "\\n") 34 .replace(/\"/g, "\\\""); 35 }, 36 "stringify": function (obj) { 37 var t = typeof obj; 38 if (t != "object" || obj === null) { 39 // simple data type 40 if (t == "string") obj = '"' + this.jsString(obj) + '"'; 41 return String(obj); 42 } else { 43 // recurse array or object 44 var date; 45 var n, v, json = [], arr = obj && obj.constructor == Array; 46 47 if (obj.constructor === Date) 48 return "\"" + this.formatDateTime(obj, DateTimeFormat.JsShortDateTime) + "\""; 49 50 for (n in obj) { 51 v = obj[n]; 52 t = typeof v; 53 date = v && v.constructor === Date; 54 55 //if (obj.hasOwnProperty(n)) { 56 if (t == "function") continue; 57 if (t == "string") 58 v = '"' + this.jsString(v) + '"'; 59 else if (t == "object" && v !== null) { 60 if (date) 61 v = "\"" + this.formatDateTime(v, DateTimeFormat.JsShortDateTime) + "\""; 62 else 63 v = jQuery.stringify(v); 64 } 65 json.push((arr ? "" : '"' + n + '":') + String(v)); 66 } 67 return (arr ? "[" : "{") + String(json) + (arr ? "]" : "}"); 68 } 69 }, 70 // ì ìë¡ ë³í 71 "parseInt": function (val) { 72 if (val === undefined || val == null) return 0; 73 if (typeof val == "boolean") return val ? 1 : 0; 74 if (val == "selected" || val == "checked") return 1; 75 if (isNaN(val) || val == "") return 0; 76 return parseInt(val, 10); 77 }, 78 "parseTime": function (str) { 79 if (!$.patterns.time.test(str)) return null; 80 var val = str.split(":"); 81 var rst = new Date(); 82 rst.setHours(parseInt(val[0], 10)); 83 if (val.length > 1) { 84 rst.setMinutes(parseInt(val[1], 10)); 85 if (val.length == 3) 86 rst.setSeconds(parseInt(val[2], 10)); 87 } 88 return rst; 89 }, 90 // ë ì§ë¬¸ìì´ì ë°ì´í¸ê°ì²´ë¡ ë³í 91 "parseDate": function (str) { 92 var rst; 93 if ($.patterns.date.test(str)) { 94 var dtm = str.split(/\s+/); 95 dtm[0] = dtm[0].split(/[\-\/\.]+/); 96 97 rst = new Date(parseInt(dtm[0][0], 10), parseInt(dtm[0][1], 10) - 1, parseInt(dtm[0][2], 10)); 98 99 if (dtm.length == 2) { 100 dtm[1] = dtm[1].split(":"); 101 if (dtm[1].length >= 1) rst.setHours(parseInt(dtm[1][0], 10)); 102 if (dtm[1].length >= 2) rst.setMinutes(parseInt(dtm[1][1], 10)); 103 if (dtm[1].length == 3) rst.setSeconds(parseInt(dtm[1][2], 10)); 104 } 105 } else 106 rst = null; 107 return rst; 108 }, 109 // ë¶ì¸ ê°ì¼ë¡ ë³í 110 "parseBool": function (value) { 111 var t = typeof value; 112 if (value === undefined || value === null) return false; 113 if (t === "boolean") return value; 114 if (t === "number") return value > 0; 115 if (t === "object" || t == "string" && !isNaN(value) && parseInt(value, 10) > 0) return true; 116 117 var rst = false; 118 switch (value.toLowerCase()) { 119 case "true": 120 case "yes": 121 case "checked": 122 case "selected": 123 rst = true; 124 break; 125 } 126 return rst; 127 }, 128 // íì 129 "popup": function (url, name, scroll, w, h, l, t, status) { 130 var features = "fullscreen=0,toolbar=0,location=0,directories=0,menubar=0,resizable=0" + 131 ",scrollbars=" + scroll +
132 ",width=" + w + ",height=" + h + 133 ",status=" + (status || 1); 134 if (l) features += ",left=" + l; 135 if (t) features += ",top=" + t; 136 return window.open(url, name, features); 137 }, 138 // ê°ì²´ ë³µì¬ 139 "objectCopy": function (obj) { 140 if (obj === null || obj === undefined || typeof obj !== "object") return obj; 141 var clone = obj instanceof Array ? [] : {}; 142 for (var i in obj) clone[i] = this.objectCopy(obj[i]); 143 return clone; 144 }, 145 // ë ì§ ë³µì¬ 146 "dateCopy": function (d) { 147 if (d == undefined || d == null) return null; 148 var rst = new Date( 149 d.getFullYear(), d.getMonth(), d.getDate(), 150 d.getHours(), d.getMinutes(), d.getSeconds(), d.getMilliseconds() 151 ); 152 return rst; 153 }, 154 // URL ê°ì²´ 155 "url": { 156 "qstr": function (key, t) { 157 var str = location.href; 158 var index = str.indexOf("?") + 1; 159 var lastIndex = str.indexOf("#") > -1 ? str.indexOf("#") + 1 : str.length; 160 161 str = (index == 0) ? "" : str.substring(index, lastIndex); 162 str = str.replace(/#*$/, ""); 163 164 if (!key) return str; 165 if (!t) t = "string"; 166 167 str = str.split("&"); 168 169 var rst; 170 switch (t.toLowerCase()) { 171 case "number": 172 rst = 0; 173 break; 174 case "bool": 175 rst = false; 176 break; 177 case "date": 178 rst = null; 179 break; 180 default: 181 rst = ""; 182 break; 183 } 184 for (var i = 0; i < str.length; i++) { 185 str[i] = str[i].split("="); 186 187 if (str[i][0].toLowerCase() == key.toLowerCase()) { 188 rst = (str[i].length != 2 ? "" : str[i][1]); 189 switch (t.toLowerCase()) { 190 case "number": 191 rst = $.parseInt(rst); 192 break; 193 case "bool": 194 rst = $.parseBool(rst); 195 break; 196 case "date": 197 rst = $.parseDate(rst); 198 break; 199 } 200 break; 201 } 202 } 203 return rst; 204 }, 205 // URL ì¸ì½ë© 206 "enc": function (url) { 207 if (!url || url == "") return ""; 208 rst = encodeURIComponent(url); 209 rst = rst.replace(/\./g, "%2e"); 210 rst = rst.replace(/%2b/ig, "%252b"); 211 212 return rst; 213 }, 214 // URL ëì½ë© 215 "dec": function (url) { 216 var rst = url; 217 try { 218 rst = rst.replace(/%252b/ig, "%2b"); 219 rst = decodeURIComponent(rst); 220 } catch (e) { 221 rst = unescape(rst); 222 } 223 return rst; 224 }, 225 "parse": function (url) { 226 url = url || location.href; 227 const rst = new URL(url); 228 rst.pathAndQuery = rst.pathname + rst.search; 229 rst.filename = rst.pathname.substring(rst.pathname.lastIndexOf("/") + 1); 230 const ext = rst.filename.split("."); 231 rst.extension = ext.length > 1 ? `.${ext[ext.length - 1]}` : ""; 232 233 return rst; 234 }, 235 "host": function (url) { return this.parse(url).host; }, 236 // ê²½ë¡ì 쿼리 문ìì´ ë°í 237 "pathAndQuery": function (url) { return this.parse(url).pathAndQuery; }, 238 // íì¼ëª ë°í 239 "filename": function (url) { return this.parse(url).filename; }, 240 // URLìì íì¥ì ë°í 241 "ext": function (url) { return this.extension(url); }, 242 "extension": function (url) { return this.parse(url).extension; }, 243 // íì´ì§ ì¸ë±ì¤(0ë¶í° ìì)를 ê°ì ¸ìµëë¤. 244 "getPageIndex": function (key) { return this.pageIndex(key); }, 245 "pageIndex": function (key) { 246 const rst = this.qstr(key, "number"); 247 return Math.max(0, rst - 1); 248 } 249 }, 250 // ë ì§ í¬ë©§ 251 "formatDateTime": function (dat, dtFormat) { 252 if (dat == null) return ""; 253 if (!dtFormat) dtFormat = DateTimeFormat.JsShortDate; 254 255 var rst = ""; 256 var week = ["ì¼", "ì", "í", "ì", "목", "ê¸", "í "]; 257 258 switch (dtFormat) { 259 case DateTimeFormat.JsShortDate: 260 rst = dat.getFullYear() + "-" + 261 this.formatNumber(dat.getMonth() + 1, 2) + "-" + 262 this.formatNumber(dat.getDate(), 2); 263 break; 264 case DateTimeFormat.JsShortDateTime: 265 rst = this.formatDateTime(dat, DateTimeFormat.JsShortDate) + 266 " " + this.formatNumber(dat.getHours(), 2) + 267 ":" + this.formatNumber(dat.getMinutes(), 2) + 268 ":" + this.formatNumber(dat.getSeconds(), 2); 269 break; 270 case DateTimeFormat.JsLongDate: 271 rst = dat.getFullYear() + "ë " + 272 (dat.getMonth() + 1) + "ì " + 273 dat.getDate() + "ì¼ " + 274 week[dat.getDay()] + "ìì¼"; 275 break; 276 case DateTimeFormat.JsLongDateTime: 277 rst = this.formatDateTime(dat, DateTimeFormat.JsLongDate) + " " + 278 this.formatDateTime(dat, DateTimeFormat.JsLongTime); 279 break; 280 case DateTimeFormat.JsShortTime: 281 rst = this.formatDateTime(dat, DateTimeFormat.JsHourMinute) + ":" + 282 this.formatNumber(dat.getSeconds(), 2); 283 break; 284 case DateTimeFormat.JsLongTime: 285 rst = (dat.getHours() > 12 ? "ì¤í " : "ì¤ì ") + 286 (dat.getHours() % 12) + "ì " + 287 dat.getMinutes() + "ë¶ " + 288 dat.getSeconds() + "ì´"; 289 break; 290 case DateTimeFormat.JsHourMinute: 291 rst = this.formatNumber(dat.getHours(), 2) + ":" + 292 this.formatNumber(dat.getMinutes(), 2); 293 break; 294 case DateTimeFormat.JsMonthDate: 295 rst = this.formatNumber(dat.getMonth() + 1, 2) + "/" + 296 this.formatNumber(dat.getDate(), 2); 297 break; 298 case DateTimeFormat.JsShortYear: 299 rst = dat.getFullYear() + "/" + 300 this.formatDateTime(dat, DateTimeFormat.JsMonthDate) + " " + 301 this.formatDateTime(dat, DateTimeFormat.JsHourMinute); 302 break; 303 } 304 return rst; 305 }, 306 // ì«ì ì½¤ë§ ì¶ê° 307 "addComma": function (num) { 308 return num.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","); 309 }, 310 // ì«ì í¬ë©§ 311 "formatNumber": function (num, len) { 312 var rst = "" 313 if (len === undefined) { 314 var txtNumber = num.toString(); 315 var rxSplit = new RegExp("([0-9])([0-9]{3}[,\.])"); 316 var arrNumber = txtNumber.split("."); 317 318 arrNumber[0] += "."; 319 do { 320 arrNumber[0] = arrNumber[0].replace(rxSplit, "$1,$2"); 321 } while (rxSplit.test(arrNumber[0])); 322 323 rst = arrNumber.length > 1 ? arrNumber.join("") : arrNumber[0].split(".")[0]; 324 } else { 325 rst = num.toString(); 326 for (var i = 0; i < len; i++) rst = "0" + rst; 327 rst = rst.substring(rst.length - len, rst.length); 328 } 329 return rst; 330 }, 331 // 문ìì´ ì르기 332 "cutString": function (str, len) { 333 if (str == "" || str == null) return ""; 334 return this.len(str) > len ? this.left(str, len) + ".." : str; 335 }, 336 // 문ìì´ ê¸¸ì´ 337 "len": function (str) { 338 var ch, len = 0; 339 for (var i = 0; i < str.length; i++) 340 str.charCodeAt(i) > 1000 ? len += 2 : len++; 341 return len; 342 }, 343 // ì¼ìª½ 문ìì´ ë°í 344 "left": function (str, len) { 345 if (str == null) return ""; 346 347 var k = 0, rst = ""; 348 for (var i = 0; i < str.length; i++) { 349 str.charCodeAt(i) > 1000 ? k += 2 : k++; 350 if (k > len) break; 351 rst += str.charAt(i); 352 } 353 return rst; 354 }, 355 // ì¤ë¥¸ìª½ 문ìì´ ë°í 356 "right": function (str, len) { 357 if (!str) return ""; 358 return str.substring(str.length - len); 359 }, 360 // ì¿ í¤ ê°ì²´ 361 "cookie": { 362 // ì¿ í¤ ë°í 363 "get": function (name) { 364 var nameOfCookie = name + "="; 365 var x = 0; 366 367 while (x <= document.cookie.length) { 368 var y = (x + nameOfCookie.length); 369 370 if (document.cookie.substring(x, y) == nameOfCookie) { 371 if ((endOfCookie = document.cookie.indexOf(";", y)) == -1) 372 endOfCookie = document.cookie.length; 373 return unescape(document.cookie.substring(y, endOfCookie)); 374 } 375 x = document.cookie.indexOf(" ", x) + 1; 376 if (x == 0) break; 377 } 378 return ""; 379 }, 380 // ì¿ í¤ ì ì¥ 381 "set": function (name, value, expiredays) { 382 var todayDate = new Date(); 383 todayDate.setDate(todayDate.getDate() + expiredays); 384 document.cookie = name + "=" + escape(value) + "; path=/; expires=" + todayDate.toGMTString() + ";"; 385 } 386 }, 387 // ì í¨ì± ê²ì¬ 388 "validator": { 389 // ìì´ë 390 "id": function (val) { 391 return $.patterns.id.test(val); 392 }, 393 // í¨ì¤ìë 394 "pwd": function (val) { 395 return $.patterns.pwd.test(val); 396 }, 397 // ì í¨ ì´ë©ì¼ ì²´í¬ 398 "email": function (email) { 399 return $.patterns.email.test(email); 400 }, 401 // ì´ë¯¸ì§ ì¬ë¶ ë°í 402 "image": function (url) { 403 var ext = $.url.ext(url).toLowerCase(); 404 var ret; 405 406 switch (ext) { 407 case "jpg": 408 case "gif": 409 case "png": 410 ret = true; 411 break; 412 default: 413 ret = false; 414 } 415 return ret; 416 }, 417 // URL ì²´í¬ 418 "url": function (value) { 419 return $.patterns.url.test(value); 420 }, 421 // ì íë²í¸ 422 "phone": function (value) { 423 return $.patterns.phone.test(value); 424 } 425 }, 426 // í¤íë ì¤ ì´ë²¤í¸ í¸ë¤ë¬ 427 "keypressHandlers": { 428 //ì«ì 429 "number": function (e) { 430 var keyCode = Math.max(e.which, e.keyCode); 431 var availCharPattern = /\d/; 432 var ch = String.fromCharCode(keyCode); 433 return availCharPattern.test(ch) || this.isControlKey(keyCode); 434 }, 435 // ì ì ë©ì¼ 주ì 436 "email": function (e) { 437 var keyCode = Math.max(e.which, e.keyCode); 438 var availCharPattern = /[-\w\.@]/i; 439 var ch = String.fromCharCode(keyCode); 440 return availCharPattern.test(ch) || this.isControlKey(keyCode); 441 }, 442 // ì ì ë©ì¼ 주ì ì´ë¦ 443 "emailUserName": function (e) { 444 var keyCode = Math.max(e.which, e.keyCode); 445 var availCharPattern = /[\w-\.]/i; 446 var ch = String.fromCharCode(keyCode); 447 return availCharPattern.test(ch) || this.isControlKey(keyCode); 448 }, 449 // ì ì ë©ì¼ 주ì ëë©ì¸ 450 "emailDomain": function (e) { 451 var keyCode = Math.max(e.which, e.keyCode); 452 var availCharPattern = /[a-z\d-\.]/i; 453 var ch = String.fromCharCode(keyCode); 454 return availCharPattern.test(ch) || this.isControlKey(keyCode); 455 }, 456 // í´ëí°, ì íë²í¸ 457 "phone": function (e) { 458 var keyCode = Math.max(e.which, e.keyCode); 459 var availCharPattern = /[\d-,\+]/; 460 var ch = String.fromCharCode(keyCode); 461 return availCharPattern.test(ch) || this.isControlKey(keyCode); 462 }, 463 // ì ì´í¤ ì¬ë¶ë¥¼ ëíë´ë ê°ì ë°íí©ëë¤. 464 "isControlKey": function (keyCode) { 465 return keyCode == 8 || // Backspace 466 keyCode == 9 || // Tab 467 keyCode == 13 || // Enter 468 keyCode == 35 || // End 469 keyCode == 36 || // Home 470 keyCode == 37 || // â 471 keyCode == 39 || // â 472 keyCode == 46; // Del 473 } 474 }, 475 "html": { 476 // HTML ì¸ì½ë© 477 "enc": function (str) { 478 var r; 479 r = str.replace(/&/g, "&"); 480 r = r.replace(/"/g, """); 481 r = r.replace(/</g, "<"); 482 r = r.replace(/>/g, ">"); 483 484 return r; 485 }, 486 // ì´ë¯¸ì§ 487 "img": function (src, alt, w, h, css) { 488 var rst = null; 489 if (src === undefined || src === null || src.length == 0) return rst; 490 491 alt = alt || ""; 492 rst = $(document.createElement("img")) 493 .attr({ "src": src, "alt": alt, "title": alt }); 494 if (w) rst.width(w + "px"); 495 if (h) rst.height(h + "px"); 496 if (css) rst.addClass(css); 497 498 return rst; 499 }, 500 // ë§í¬ ì´ë¯¸ì§ 501 "linkedImage": function (attr) { 502 var a = $(document.createElement("a")); 503 504 if (attr.href) a.attr("href", attr.href); 505 if (attr.className) a.addClass(attr.className); 506 if (attr.title) a.attr("title", attr.title); 507 if (attr.target) a.attr("target", attr.target); 508 if (attr.onclick) a.click(attr.onclick); 509 510 var img = $(document.createElement("img")); 511 if (attr.title) img.attr("alt", attr.title); 512 if (attr.src) img.attr("src", attr.src); 513 a.append(img); 514 return a; 515 }, 516 // ì¤ë°ê¿ íê·¸(<br />) 517 "newLineTag": function (text) { 518 var rst = text.replace(/\r\n/g, "<br />"); 519 rst = text.replace(/\n/g, "<br />"); 520 return rst; 521 } 522 }, 523 "check_key": { 524 // ì«ì 525 "number": function (str) { 526 var rst = false; 527 var regNumber = /^[0-9]*$/; 528 return rst; 529 }, 530 // íê¸ 531 "korean": function (e) { 532 var charASCII = e.keyCode; 533 var rst = false; 534 if ((charASCII >= 12592) || (charASCII <= 12687)) 535 rst = true; 536 return rst; 537 }, 538 // ì문 539 "english": function (e) { 540 var charASCII = e.keyCode; 541 var rst = false; 542 if ((charASCII>=65 && charASCII<=90) || (charASCII>=97 && charASCII<=122)) 543 rst = true; 544 return rst; 545 }, 546 // ì문 ë문ì 547 "englishUpper": function (e) { 548 var charASCII = e.keyCode; 549 var rst = false; 550 if (charASCII>=65 && charASCII<=90) 551 rst = true; 552 return rst; 553 }, 554 // ì문 ì문ì 555 "englishLower": function (e) { 556 var charASCII = e.keyCode; 557 var rst = false; 558 if (charASCII>=97 && charASCII<=122) 559 rst = true; 560 return rst; 561 }, 562 // ìì´ë (ì«ì, ì문ì, _ ) 563 "id": function (str) { 564 console.log(str); 565 var rst = false; 566 // ì«ì 567 var regNumber = /^[0-9]*$/; 568 if (regNumber.test(str)) rst = true; 569 570 // ì문ì 571 var regLower = /^[a-z]/g; 572 if (regLower.test(str)) rst = true; 573 574 // _ 575 var regUnder = /^[_]/g; 576 if (regUnder.test(str)) rst = true; 577 578 return rst; 579 }, 580 // í¹ìê¸°í¸ 95 _ 581 "special": function (e) { 582 var charASCII = e.keyCode; 583 var rst = false; 584 if ((charASCII >= 33 && charASCII <= 47) || (charASCII >= 58 && charASCII <= 64) 585 || (charASCII>=91 && charASCII<=96) || (charASCII>=123 && charASCII<=126)) 586 rst = true; 587 return rst; 588 } 589 } 590}); 591 592//]]> 593//</script>
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.