function isEmail(emailAddress) { var pattern = /^([a-z\d!#$%&'*+\-\/=?^_`{|}~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+(\.[a-z\d!#$%&'*+\-\/=?^_`{|}~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+)*|"((([ \t]*\r\n)?[ \t]+)?([\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21\x23-\x5b\x5d-\x7e\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|\\[\x01-\x09\x0b\x0c\x0d-\x7f\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))*(([ \t]*\r\n)?[ \t]+)?")@(([a-z\d\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|[a-z\d\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF][a-z\d\-._~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]*[a-z\d\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])\.)+([a-z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|[a-z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF][a-z\d\-._~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]*[a-z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])\.?$/i; // alert( pattern.test(emailAddress) ); return pattern.test(emailAddress); }; function getDistance(lat1 , lng1 , lat2 , lng2){ var rad = Math.PI / 180.0; return Math.acos(Math.sin(lat2*rad) * Math.sin(lat1*rad) + Math.cos(lat2*rad) * Math.cos(lat1*rad) * Math.cos(lng2*rad - lng1*rad)) * 6371000; } function HttpPostXml(url, param) { var rtn = ''; $.ajax({ url : url, type: "POST", data : param, dataType:"xml", contentType: "application/x-www-form-urlencoded;charset=utf-8", success:function(resultData){ result = data; } }); return rtn; } function HttpGetXml(url, param) { var rtn = ''; $.ajax({ url : url, data : param, dataType:"xml", contentType: "application/x-www-form-urlencoded;charset=utf-8", success:function(resultData){ result = data; } }); return rtn; } function HttpGetJson(url, param) { var rtn = ''; $.ajax({ url: url, async: false, data: param, contentType: "application/x-www-form-urlencoded;charset=utf-8", dataType: 'json', success: function (response) { rtn = response; } }); return rtn; } //var Data = HttpPostJson('http://aa.aa/a.php', param) ; function HttpPostJson(url, data) { var result; $.ajax({ type : 'post', url : url, dataType:'json', contentType: "application/x-www-form-urlencoded;charset=utf-8", async : false, data : data, beforeSend : function(xhr){}, success : function(data) { result = data; } }); return result; } // 익스 10 이상! function HttpPostData(url, formData) { var result; $.ajax({ url: url, data: formData, processData: false, contentType: false, async: false, type: 'POST', success: function(data){ result = data; } }); return result; } /* // 프로그래스바 테스트 했던거 function _(el){ return document.getElementById(el); } function progressHandler(event){ var percent = (event.loaded / event.total) * 100; $("#progressBar").show(); _("progressBar").value = Math.round(percent); } */ function fixedEncodeURIComponent (str) { return encodeURIComponent(str).replace(/[!'()]/g, escape).replace(/\*/g, "%2A"); } function get_version_of_IE () { var word; var version = "N/A"; var agent = navigator.userAgent.toLowerCase(); var name = navigator.appName; // IE old version ( IE 10 or Lower ) if ( name == "Microsoft Internet Explorer" ) word = "msie "; else { // IE 11 if ( agent.search("trident") > -1 ) word = "trident/.*rv:"; // IE 12 ( Microsoft Edge ) else if ( agent.search("edge/") > -1 ) word = "edge/"; } var reg = new RegExp( word + "([0-9]{1,})(\\.{0,}[0-9]{0,1})" ); if ( reg.exec( agent ) != null ) version = RegExp.$1 + RegExp.$2; return version; } function noCtlrV(){ var ctrl = false; $(this).keydown(function(){ if(event.keyCode == 17){ ctrl = true; } }); $(this).keyup(function(){ if(event.keyCode == 17){ ctrl = false; } }); $(this).keydown(function(){ if(ctrl && event.keyCode == 86){ alert('Ctrl + V 를 사용하실수 없습니다.'); return false; } }); } /* var id = ''; // 페이징 시작할 태그 id var url = ''; // 페이징 할 리스트 url var search1 = 'q='+q; // 필요한 파라미터 값 있을 시, 넣고 없으면 '' var search2 = 'q_type='+q_type; // 필요한 파라미터 값 있을 시, 넣고 없으면 '' var search3 = 'type='+type; // 필요한 파라미터 값 있을 시, 넣고 없으면 '' var search4 = 'mode='+mode; // 필요한 파라미터 값 있을 시, 넣고 없으면 '' var search5 = 'line='+line; // 필요한 파라미터 값 있을 시, 넣고 없으면 '' var total = result.total_count; // 리스트 전체 게시물 수 var count = 9; // 페이지당 보여 줄 페이징 개수 pagenation(id,url,search1,search2,search3,search4,search5,page,total,count); */ function pagenation(id,url,search1,search2,search3,search4,search5,page,total,count){ var S1 = ''; var S2 = ''; var S3 = ''; var S4 = ''; var S5 = ''; var count_H = parseInt(count / 2); if(search1 != ''){ S1 = '?'+search1; } if(search2 != ''){ S2 = '&'+search2; } if(search3 != ''){ S3 = '&'+search3; } if(search4 != ''){ S4 = '&'+search4; } if(search5 != ''){ S5 = '&'+search5; } var search = S1+S2+S3+S4+S5; if(page == "" || page ==1){ $('#'+id).html(''); }else{// <,<< var first_page = ''; if(page > count){ first_page = ''; } $('#'+id).html( first_page+ '' ); } if(page == total && total >= count){ for(var i=Number(page)-(count-1);i<=total;i++){ $('#'+id).append( '
  • '+ i+ '
  • ' ); } }else if(total<=count){ for(var i=1;i<=total;i++){ $('#'+id).append( '
  • '+ i+ '
  • ' ); } }else if(page'+ i+ '' ); } } for(var i = 2 ; i < count-count_H+1 ; i++){ if(page == i){ for(var i=Number(page)-(i-1);i'+ i+ '' ); } } } } if(page >= count-count_H+1 && page != total && total > count){ for(var i = 0 ; i < count_H+1 ; i++ ){ if(count-count_H+1 <= page && page < total-(count_H) ){ for(var i=Number(page)-count_H;i<=Number(page)+count_H;i++){ $('#'+id).append( '
  • '+ i+ '
  • ' ); } }else if(count-count_H+1 <= page < total-i){ for(var i=total-(count-1);i<=total;i++){ $('#'+id).append( '
  • '+ i+ '
  • ' ); } } } } if(page==""){page=1}; $('#'+page+'_page').addClass('active'); if(page !=total){ // >,>> var get_last = ''; if(total>count){ get_last = ''; } $('#'+id).append( '' + get_last ); } if(total == 0 || total == undefined){ $('#'+id).html(''); } } function file_Click_Preview(_this, previewId) { var preview = document.getElementById(previewId); //div id var ua = window.navigator.userAgent; if (ua.indexOf("MSIE") > -1) {//ie일때 _this.select(); try { var src = document.selection.createRangeCollection()[0].text; // get file full path var ie_preview_error = document .getElementById("ie_preview_error_" + previewId); if (ie_preview_error) { preview.removeChild(ie_preview_error); //error가 있으면 delete } // alert(src); var count = src.split('.'); if(count[count.length-1] != 'jpg' && count[count.length-1] != 'jpeg' && count[count.length-1] != 'png' && count[count.length-1] != 'gif'){ alert('이미지 형식의 파일만 올릴수 있습니다.['+count[count.length-1]+']'); return false; } var img = document.getElementById(previewId); //이미지가 뿌려질 곳 // alert(src); img.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+ src + "', sizingMethod='scale')"; //이미지 로딩, sizingMethod는 div에 맞춰서 사이즈를 자동조절 하는 역할 } catch (e) { if (!document.getElementById("ie_preview_error_" + previewId)) {//error 체크창 var info = document.createElement("

    "); info.id = "ie_preview_error_" + previewId; info.innerHTML = "a"; preview.insertBefore(info, null); } } } else { //ie가 아닐때 var files = _this.files; for ( var i = 0; i < files.length; i++) { var file = files[i]; var imageType = /image.*/; //이미지 파일일경우만.. 뿌려준다. if (!file.type.match(imageType)) continue; var prevImg = document.getElementById("prev_" + previewId); if (prevImg) { prevImg.id = "prev_" + previewId; prevImg.file = file; } if (window.FileReader) { // FireFox, Chrome, Opera 확인. var reader = new FileReader(); reader.onloadend = (function(aImg) { return function(e) { aImg.src = e.target.result; }; })(prevImg); reader.readAsDataURL(file); } else { // safari is not supported FileReader //alert('not supported FileReader'); if (!document.getElementById("sfr_preview_error_" + previewId)) { var info = document.createElement("p"); info.id = "sfr_preview_error_" + previewId; info.innerHTML = "not supported FileReader"; preview.insertBefore(info, null); } } } } } function SpecialCharacterCheck(input) { var RegExp = /[\{\}\[\]\/?.,;:|\)*~`!^\-_+┼<>@\#$%&\'\"\\\(\=]/gi;//정규식 구문 var str = $(input).val(); if (RegExp.test(str)) { alert("특수문자는 입력하실 수 없습니다."); $(input).val(str.substring(0, str.length - 1));//특수문자를 지우는 구문 } } function SpecialCharacterCheckRemoveAll(input) { var RegExp = /[\{\}\[\]\/?.,;:|\)*~`!^\-_+┼<>@\#$%&\'\"\\\(\=]/gi;//정규식 구문 var str = $(input).val(); if (RegExp.test(str)) { $(input).val("");//특수문자를 지우는 구문 } } function PasswordCheck(input) { var RegExp = /^.*(?=.{6,20})(?=.*[0-9])(?=.*[a-zA-Z]).*$/; $(input).focusout(function(){ var str = $(input).val(); if (RegExp.test(str)) { alert("비밀번호는 영문 숫자 혼합하여 6~20자리 이내로 입력해 주세요."); $(input).val(""); } }); } function Preview_Image(previewId,src,width,height){ var preview = document.getElementById(previewId); //div id var ua = window.navigator.userAgent; if (ua.indexOf("MSIE") > -1) { var img = document.getElementById(previewId); //이미지가 뿌려질 곳 img.style.width = width; img.style.height = height; img.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+src+"', sizingMethod='scale')"; //이미지 로딩, sizingMethod는 div에 맞춰서 사이즈를 자동조절 하는 역할 }else{ var prevImg = document.getElementById("prev_" + previewId); //이전에 미리보기가 있다면 삭제 if (prevImg) { preview.removeChild(prevImg); } var img = document.createElement("img"); //크롬은 div에 이미지가 뿌려지지 않는다. 그래서 자식Element를 만든다. img.id = "prev_"+previewId; img.classList.add("obj"); img.style.width = width; //기본설정된 div의 안에 뿌려지는 효과를 주기 위해서 div크기와 같은 크기를 지정해준다. img.style.height = height; preview.appendChild(img); img.src = src; } } function P_Number_Only(event){ if ((event.keyCode<48) || (event.keyCode>57)) event.returnValue=false; } function Number_Only(key){ $(key).keydown(function(event){ $(this).val($(this).val().replace(/[^0-9]/gi , '')); if (((event.keyCode<48) || (event.keyCode>57)) && ((event.keyCode<96) || (event.keyCode>105)) && event.keyCode != 8 && event.keyCode != 9 && event.keyCode != 46 && event.keyCode != 37 && event.keyCode != 39) return false; }); $(key).keypress(function(event){ $(this).val($(this).val().replace(/[^0-9]/gi , '')); if ((event.keyCode<48) || (event.keyCode>57)) return false; }); $(key).keyup(function(event){ $(this).val($(this).val().replace(/[^0-9]/gi , '')); if (((event.keyCode<48) || (event.keyCode>57)) && ((event.keyCode<96) || (event.keyCode>105)) && event.keyCode != 8 && event.keyCode != 9 && event.keyCode != 46 && event.keyCode != 37 && event.keyCode != 39) return false; }); } function Double_Only(key){ $(key).keydown(function(event){ $(this).val($(this).val().replace(/[^0-9\.]/gi , '')); if (((event.keyCode<48) || (event.keyCode>57)) && ((event.keyCode<96) || (event.keyCode>105)) && event.keyCode != 8 && event.keyCode != 9 && event.keyCode != 46 && event.keyCode != 37 && event.keyCode != 39 && event.keyCode != 190 && event.keyCode != 46 && event.keyCode != 110) return false; }); $(key).keypress(function(event){ $(this).val($(this).val().replace(/[^0-9\.]/gi , '')); if (((event.keyCode<48) || (event.keyCode>57)) && event.keyCode != 190 && event.keyCode != 46 && event.keyCode != 110) return false; }); $(key).keyup(function(event){ $(this).val($(this).val().replace(/[^0-9\.]/gi , '')); if (((event.keyCode<48) || (event.keyCode>57)) && ((event.keyCode<96) || (event.keyCode>105)) && event.keyCode != 8 && event.keyCode != 9 && event.keyCode != 46 && event.keyCode != 37 && event.keyCode != 39 && event.keyCode != 190 && event.keyCode != 46 && event.keyCode != 110) return false; }); } function Comma(num) { return num == null || num == undefined ? 0 : num.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","); } function autoHypenPhone(key) { $(key).keyup(function (event) { $(this).val($(this).val().replace(/[^0-9\-]/gi , '')); if (((event.keyCode<48) || (event.keyCode>57)) && ((event.keyCode<96) || (event.keyCode>105)) && event.keyCode != 8 && event.keyCode != 9 && event.keyCode != 46 && event.keyCode != 37 && event.keyCode != 39) return false; event = event || window.event; var phone = this.value.trim(); phone = phone.replace(/[^0-9]/g, ''); let phoneRegex = (phone.length < 8) ? /(02|[0-9]{3,3})([0-9]{0,4})/ : /(02|[0-9]{3,3})([0-9]{3,4})([0-9]{0,4})/; if(phone.length >= 10) phoneRegex = /(02|[0-9]{3,3})([0-9]{3,4})([0-9]{4,4})/ let phoneMatch = phone.match(phoneRegex); let phoneValue = phone; if(phoneMatch != null){ phoneValue = ""; for(var phoneKey in phoneMatch ){ if(phoneKey > 0){ if(phoneValue != "") phoneValue += "-"; phoneValue += phoneMatch[phoneKey]; } } } // (phoneMatch != null && phoneMatch.length > 3) ? phoneMatch[1]+"-"+phoneMatch[2]+"-"+phoneMatch[3] : phone; this.value = phoneValue; }); } /* * * * 다음 주소 관련 * * * */ function closeDaumPostcode(layer_id) { $('#'+layer_id).hide(); } function DaumPostcode(layer_id, postcode_id , address_id , width , height) { var element_layer = $('#'+layer_id); new daum.Postcode({ oncomplete: function(data) { // 검색결과 항목을 클릭했을때 실행할 코드를 작성하는 부분. // 각 주소의 노출 규칙에 따라 주소를 조합한다. // 내려오는 변수가 값이 없는 경우엔 공백('')값을 가지므로, 이를 참고하여 분기 한다. var fullAddr = data.address; // 최종 주소 변수 var extraAddr = ''; // 조합형 주소 변수 // 기본 주소가 도로명 타입일때 조합한다. if(data.addressType === 'R'){ //법정동명이 있을 경우 추가한다. if(data.bname !== ''){ extraAddr += data.bname; } // 건물명이 있을 경우 추가한다. if(data.buildingName !== ''){ extraAddr += (extraAddr !== '' ? ', ' + data.buildingName : data.buildingName); } // 조합형주소의 유무에 따라 양쪽에 괄호를 추가하여 최종 주소를 만든다. fullAddr += (extraAddr !== '' ? ' ('+ extraAddr +')' : ''); } // 우편번호와 주소 정보를 해당 필드에 넣는다. document.getElementById(postcode_id).value = data.zonecode; //5자리 새우편번호 사용 document.getElementById(address_id).value = fullAddr; // document.getElementById('sample2_addressEnglish').value = data.addressEnglish; // iframe을 넣은 element를 안보이게 한다. // (autoClose:false 기능을 이용한다면, 아래 코드를 제거해야 화면에서 사라지지 않는다.) element_layer.hide(); }, width : '100%', height : '100%' }).embed(document.getElementById(layer_id)); // iframe을 넣은 element를 보이게 한다. element_layer.show(); // iframe을 넣은 element의 위치를 화면의 가운데로 이동시킨다. initLayerPosition(layer_id , width , height); } // 브라우저의 크기 변경에 따라 레이어를 가운데로 이동시키고자 하실때에는 // resize이벤트나, orientationchange이벤트를 이용하여 값이 변경될때마다 아래 함수를 실행 시켜 주시거나, // 직접 element_layer의 top,left값을 수정해 주시면 됩니다. function initLayerPosition(layer_id , width , height){ var element_layer = $('#'+layer_id); var width = width; //우편번호서비스가 들어갈 element의 width var height = height; //우편번호서비스가 들어갈 element의 height var borderWidth = 5; //샘플에서 사용하는 border의 두께 // 위에서 선언한 값들을 실제 element에 넣는다. element_layer.css({ "width": width + 'px', "height": height + 'px' , "border" : borderWidth + 'px solid', "left" : (((window.innerWidth || document.documentElement.clientWidth) - width)/2 - borderWidth) + 'px', "top" : (((window.innerHeight || document.documentElement.clientHeight) - height)/2 - borderWidth) + 'px' }); } /* * * * 다음 주소 관련 * * * */ function getCookie(cname) { var name = cname + "="; var ca = document.cookie.split(';'); for(var i = 0; i 12 ? HOUR - 12 : HOUR; var ampm = HOUR >= 12 ? '오후' : '오전'; var HH = ((HOUR < 10) ? "0" : "") + HOUR; var hh = ((hourShour < 10) ? "0" : "") + hourShour; var ii = ((this.getMinutes() < 10) ? "0" : "") + this.getMinutes(); var ss = ((this.getSeconds() < 10) ? "0" : "") + this.getSeconds(); var w = weekShort[this.getWeek()]; var W = weekLong[this.getWeek()]; // console.log(yyyy); // console.log(mm); // console.log(dd); // console.log(hh); // console.log(ii); // console.log(ss); // console.log(w); // console.log(W); // console.log(this.getWeek()); return format.replace(/%Y/g,yyyy) .replace(/%m/g,mm) .replace(/%d/g,dd) .replace(/%p/g,ampm) .replace(/%H/g,HH) .replace(/%h/g,hh) .replace(/%i/g,ii) .replace(/%s/g,ss) .replace(/%w/g,w) .replace(/%W/g,W); }; function getDistance(locations) { let prev_location = undefined; let distance = 0; // console.log(locations); for(let key in locations){ let value = locations[key]; if(prev_location == undefined){ prev_location = value; }else{ let lat1 = prev_location.lat; let lon1 = prev_location.lng; let lat2 = value.lat; let lon2 = value.lng; let rad = Math.PI/180.0; distance += Math.acos(Math.sin(lat2*rad) * Math.sin(lat1*rad) + Math.cos(lat2*rad) * Math.cos(lat1*rad) * Math.cos(lon2*rad - lon1*rad)) * 6371000; prev_location = value; } } return Math.floor(distance); } function escape(txt) { let esc = ('' + txt) .replace(/\\/g, '\\\\') .replace(/\t/g, '\\t') .replace(/\n/g, '\\n') .replace(/\u00A0/g, '\\u00A0') .replace(/&/g, '\\x26') .replace(/'/g, '\\x27') .replace(/"/g, '\\x22') .replace(//g, '\\x3E'); return esc; } function unescape(txt) { let esc = ('' + txt) .replace(/\\x3E/g, '>') .replace(/\\x3C/g, '<') .replace(/\\x22/g, '"') .replace(/\\x27/g, "'") .replace(/\\x26/g, '&') .replace(/\\u00A0/g, '\u00A0') .replace(/\\n/g, '\n') .replace(/\\t/g, '\t'); return esc.replace(/\\\\/g, '\\'); } //sh function day_hangeul(day){ let change_text = ''; day = day.toUpperCase(); switch(day){ case 'MONDAY' : change_text = '월요일'; break; case 'TUESDAY' : change_text = '화요일'; break; case 'WEDNESDAY' : change_text = '수요일'; break; case 'THURSDAY' : change_text = '목요일'; break; case 'FRIDAY' : change_text = '금요일'; break; case 'SATURDAY' : change_text = '토요일'; break; case 'SUNDAY' : change_text = '일요일'; break; } return change_text; } function repact_number(num){ let res = num.replace(/[^0-9]/g,""); return res; }