/** * 공통 처리 플러그인 */ function prefixZero(number, length) { var zero = ''; number = number.toString(); if (number.length < length) { for (let i = 0; i < length - number.length; i++) { zero += '0'; } } return zero + number; } import Vue from "vue"; export default { install(Vue) { //시간 구하기 Vue.config.globalProperties.$getFullTime = function (hour, minute, seconds) { var date = new Date(); var h = date.getHours(); var m = date.getMinutes(); var s = date.getSeconds(); if (this.$isEmpty(hour) == false) { h += hour; } if (this.$isEmpty(minute) == false) { m += minute; } if (this.$isEmpty(seconds) == false) { s += seconds; } return prefixZero(h, 2) + ":" + prefixZero(m, 2) + ":" + prefixZero(s, 2); } // 빈값체크 Vue.config.globalProperties.$isEmpty = function (data) { if (data === undefined || data === null || data === "" || data.length === 0 || (data.constructor == Object && Object.keys(data).length === 0)) { if ((typeof data) === "number") { return false } else { return true; } } else { return false; } } /* 유효성 검사 */ // 아이디 정규식(5~20자의 영문 소문자, 숫자와 특수기호(_),(-)만 사용) Vue.config.globalProperties.$idCheck = function (data) { let validateId = /^[a-z0-9_-]{5,20}$/; if (validateId.test(data) === true) return true; return false; } // 비밀번호 정규식(8~16자의 영문 대문자, 소문자, 숫자, 특수문자를 사용) Vue.config.globalProperties.$pwCheck = function (data) { let validatePw = /^(?=.*[A-Z])(?=.*[a-z])(?=.*\d)(?=.*[@#$%^&+=!]).{8,16}$/; if (validatePw.test(data) === true) return true; return false; } // 이메일 형식 검사 Vue.config.globalProperties.$email = function (email) { const emailPattern = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/; try { return emailPattern.test(email); } catch (e) { return false; } } // IPv4 정규식 Vue.config.globalProperties.$ipv4 = function (ip) { let validateIPv4 = /^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/; if (validateIPv4.test(ip) === true) return true; return false; } // 3글자 마다 콤마 찍기 (돈) Vue.config.globalProperties.$comma = function (text) { try { return text.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","); } catch (e) { if (text === undefined || text === null || text === "" || text.length === 0) { return "-"; } else { return text; } } } // 사업자번호 정규식(10자리) Vue.config.globalProperties.$businessNumber = function (data) { let validateBusinessNumber = /^\d{10}$/; if (validateBusinessNumber.test(data) === true) return true; return false; } } }