export default { methods: { // 빈값확인 isEmpty(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; } }, // 최소 길이 minLength(key, size) { return key.length >= size; }, // 최대 길이 maxLength(key, size) { return key.length <= size; }, // 입력제한(영어/숫자) checkEN(text) { const check = /^[A-Za-z0-9][A-Za-z0-9]*$/; return check.test(text); }, // 입력제한(소문자영어/숫자) checkLEN(text) { const check = /^[a-z0-9]+$/; return check.test(text); }, /* 사용자 정보 */ // 아이디 validateId(key) { if (this.isEmpty(key)) { alert("아이디를 입력하세요."); this.$refs.lgnId.focus(); return false; } // 입력 여부 if (!this.minLength(key, 5)) { alert("아이디는 5자 이상으로 입력하세요."); this.$refs.lgnId.focus(); return false; } // 최소 길이 if (!this.maxLength(key, 50)) { alert("아이디는 50자 이하로 입력하세요."); this.$refs.lgnId.focus(); return false; } // 최대 길이 if (!this.checkLEN(key)) { alert("아이디는 영문 소문자와 숫자만 사용 가능합니다."); this.$refs.lgnId.focus(); return false; } // 입력 제한(영어/숫자) return true; }, // 이름 validateNm(key) { if (this.isEmpty(key)) { alert("이름을 입력하세요."); this.$refs.mbrNm.focus(); return false; } // 입력 여부 if (!this.minLength(key, 2)) { alert("이름은 5자 이상으로 입력하세요."); this.$refs.mbrNm.focus(); return false; } // 최소 길이 if (!this.maxLength(key, 50)) { alert("이름은 50자 이하로 입력하세요."); this.$refs.mbrNm.focus(); return false; } // 최대 길이 return true; }, // 비밀번호 validatePswd(pageId, object) { // 등록 if (pageId == null) { if (this.isEmpty(object.newPswd)) { alert("비밀번호를 입력하세요."); this.$refs.newPswd.focus(); return false; } // 입력 여부 } // 공통 if (!this.isEmpty(object.newPswd)) { if (this.isEmpty(object.errorPwd) || object.errorPwd == true) { alert("비밀번호는 영문, 숫자, 특수문자를 조합하여 입력하세요."); this.$refs.newPswd.focus(); return false; } // 작성 규칙 확인 if (!this.minLength(object.newPswd, 9)) { alert("비밀번호는 9자 이상 입력하세요."); this.$refs.newPswd.focus(); return false; } // 최소 길이 if (this.isEmpty(object.pswdChk) || object.pswdChk == true) { alert("비밀번호 확인을 올바르게 입력하세요."); this.$refs.newPswdChk.focus(); return false; } // 비밀번호확인 검증 여부 } return true; }, // 휴대폰번호 validateMblNo(key) { if (this.isEmpty(key)) { alert("휴대폰번호를 입력하세요."); this.$refs.mblTelno.focus(); return false; } // 입력 여부 const raw = key.replace(/-/g, ''); // 하이픈 제거 if (!this.minLength(raw, 10)) { alert("휴대폰번호는 10자 이상으로 입력하세요."); this.$refs.mblTelno.focus(); return false; } // 최소 길이 if (!this.maxLength(raw, 11)) { alert("휴대폰번호는 11자 이하로 입력하세요."); this.$refs.mblTelno.focus(); return false; } // 최대 길이 const telRegex = /^01[016789][0-9]{3,4}[0-9]{4}$/; if(!telRegex.test(raw)) { alert("휴대폰번호 형식이 맞지 않습니다."); this.$refs.mblTelno.focus(); return false; } // 휴대폰번호 형식 확인 return true; }, // 이메일 validateEml(object) { if (this.isEmpty(object.id)) { alert("이메일을 입력하세요."); this.$refs.emailId.focus(); return false; } // 입력 여부 // let idRegex = /^[a-zA-Z0-9._-]/; // if (!idRegex.test(object.id)) { // alert("이메일 아이디 형식이 맞지 않습니다."); // return false; // } // 이메일 아이디 형식 확인 if (object.select == null || object.select == "") { alert("이메일을 선택하세요."); this.$refs.emailSelect.focus(); return false; } // 선택 여부 if (object.select == "self") { if (this.isEmpty(object.address)) { alert("이메일 직접입력 란을 입력하세요."); this.$refs.emailAddress.focus(); return false; } // 직접입력 입력 여부 const addressRegex = /[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/i; if (!addressRegex.test(object.address)) { alert("이메일 형식이 맞지 않습니다."); this.$refs.emailAddress.focus(); return false; } // 이메일 형식 확인 } return true; }, // 이메일 validateEmlFull(object) { if (this.isEmpty(object)) { alert("이메일을 입력하세요."); this.$refs.eml.focus(); return false; } // 입력 여부 let regex = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/i; if (!regex.test(object)) { alert("이메일 형식이 맞지 않습니다."); this.$refs.eml.focus(); return false; } // 이메일 형식 확인 return true; }, // 문자수신 validateSmsAgre(key) { if (this.isEmpty(key)) { alert("문자수신 여부를 선택하세요."); return false; } // 선택 여부 return true; }, // 이메일수신 validateEmlAgre(key) { if (this.isEmpty(key)) { alert("이메일수신 여부를 선택하세요."); return false; } // 선택 여부 return true; }, // 주소 validateAddr(object) { if (this.isEmpty(object.zip)) { alert("우편번호를 선택하세요."); return false; } // 우편번호 선택 여부 if (this.isEmpty(object.addr)) { alert("주소를 입력하세요."); return false; } // 주소 입력 여부 if (this.isEmpty(object.daddr)) { alert("상세주소를 입력하세요."); this.$refs.daddr.focus(); return false; } // 상세주소 입력 여부 return true; }, // 차단 여부 validateBlock(object) { if (object.mbrStts == 3) { if (this.isEmpty(object.cntrlDt)) { alert("차단일을 입력하세요."); this.$refs.cntrlDt.focus(); return false; } // 차단일 입력 여부 if (this.isEmpty(object.cntrlRsn)) { alert("차단사유를 입력하세요."); this.$refs.cntrlRsn.focus(); return false; } // 차단사유 입력 여부 } return true; } }, }