From 2316e92cfe3bc13698adafb4e529204438f8aa4e Mon Sep 17 00:00:00 2001 From: ysCha Date: Tue, 20 Jan 2026 15:03:03 +0900 Subject: [PATCH] =?UTF-8?q?=EC=A0=84=ED=99=94=EB=B2=88=ED=98=B8=20-=20?= =?UTF-8?q?=ED=8F=AC=ED=95=A8,=20=ED=8C=A9=EC=8A=A4=ED=95=84=EC=88=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/auth/Join.jsx | 61 +++++++++++++++++++++++++++++++++--- src/locales/ja.json | 4 +-- src/locales/ko.json | 2 +- 3 files changed, 59 insertions(+), 8 deletions(-) diff --git a/src/components/auth/Join.jsx b/src/components/auth/Join.jsx index 9fcc09fd..f414cd62 100644 --- a/src/components/auth/Join.jsx +++ b/src/components/auth/Join.jsx @@ -33,6 +33,11 @@ export default function Join() { // 가입 신청 유효성 검사 const joinValidation = (formData) => { + + // 전화번호/FAX 정규식 (일본 형식: 0으로 시작, 하이픈 포함) + const telRegex = /^0\d{1,4}-\d{1,4}-\d{4}$/ + + // 판매대리점 정보 - 판매대리점명 const storeQcastNm = formData.get('storeQcastNm') if (!isObjectNotEmpty(storeQcastNm)) { @@ -65,12 +70,34 @@ export default function Join() { return false } + // 판매대리점 정보 - 전화번호 const telNo = formData.get('telNo') if (!isObjectNotEmpty(telNo)) { alert(getMessage('common.message.required.data', [getMessage('join.sub1.telNo')])) telNoRef.current.focus() return false + } else if (!telRegex.test(telNo)) { + alert(getMessage('join.validation.check1', [getMessage('join.sub1.telNo')])) + telNoRef.current.focus() + return false + } + + // + // // 판매대리점 정보 - 전화번호 + // const telNo = formData.get('telNo') + // if (!isObjectNotEmpty(telNo)) { + // alert(getMessage('common.message.required.data', [getMessage('join.sub1.telNo')])) + // telNoRef.current.focus() + // return false + // } + + // 판매대리점 정보 - FAX 번호 + const fax = formData.get('fax') + if (!isObjectNotEmpty(fax)) { + alert(getMessage('common.message.required.data', [getMessage('join.sub1.fax')])) + faxRef.current.focus() + return false } const bizNo = formData.get('bizNo') @@ -122,16 +149,38 @@ export default function Join() { } // 담당자 정보 - 전화번호 + // const userTelNo = formData.get('userTelNo') + // if (!isObjectNotEmpty(userTelNo)) { + // alert(getMessage('common.message.required.data', [getMessage('join.sub2.telNo')])) + // userTelNoRef.current.focus() + // return false + // } + + const userTelNo = formData.get('userTelNo') if (!isObjectNotEmpty(userTelNo)) { - alert(getMessage('common.message.required.data', [getMessage('join.sub2.telNo')])) + alert(getMessage('common.message.required.data', [getMessage('join.sub1.telNo')])) userTelNoRef.current.focus() return false + } else if (!telRegex.test(userTelNo)) { + alert(getMessage('join.validation.check1', [getMessage('join.sub1.telNo')])) + userTelNoRef.current.focus() + return false + } + + // 담당자 정보 - FAX 번호 + const userFax = formData.get('userFax') + if (!isObjectNotEmpty(userFax)) { + alert(getMessage('common.message.required.data', [getMessage('join.sub2.fax')])) + userFaxRef.current.focus() + return false } return true } + + // 가입 신청 const joinProcess = async (e) => { e.preventDefault() @@ -288,7 +337,8 @@ export default function Join() { name="telNo" className="input-light" maxLength={15} - onChange={inputNumberCheck} + placeholder={getMessage('join.sub1.telNo_placeholder')} + onChange={inputTelNumberCheck} ref={telNoRef} /> @@ -296,7 +346,7 @@ export default function Join() { {/* FAX 번호 */} - {getMessage('join.sub1.fax')} + {getMessage('join.sub1.fax')}*
@@ -398,7 +448,8 @@ export default function Join() { name="userTelNo" className="input-light" maxLength={15} - onChange={inputNumberCheck} + placeholder={getMessage('join.sub1.telNo_placeholder')} + onChange={inputTelNumberCheck} ref={userTelNoRef} />
@@ -406,7 +457,7 @@ export default function Join() { {/* FAX 번호 */} - {getMessage('join.sub2.fax')} + {getMessage('join.sub2.fax')}*