PageSourceSearch

https://www.youthcenter.go.kr/js/YTHIPbiz_rules.js?v=20261004184815928

js youthcenter.go.kr collected 2026-10-04 09:49:26 UTC 10,286 bytes, 214 lines download raw bytes

1const YTHIPbiz_rules = function() {
2    /**
3     * 검증 규칙을 정의한 객체
4     * 필드별로 검증 규칙과 에러 메시지를 설정
5     * @type {Object}
6     * @private
7     */
8    const RULES = {
9        MEMBER: {
10            userId: { // 사용자 ID 검증
11                rules: [
12                    { test: (value) => !!value, message: "아이디를 입력해주세요." }, // 값이 존재하는지 확인
13                    { test: (value) => value.length >= 5 && value.length <= 24, message: "아이디는 5~24자로 입력하세요." }, // 길이 검증
14                    { test: (value) => /^(?=.*[a-z])[a-z0-9]+$/.test(value), message: "영문(소문자) 또는 영문(소문자)와 숫자 조합하여 입력하세요." }, // 형식 검증
15                ],
16            },
17
18            isIdDuplicate: { // 아이디 중복 체크 검증
19                rules: [
20                    {
21                        test: (value) => value === false, // 값이 false여야 통과
22                        message: "아이디 중복확인은 필수 항목입니다.",
23                    },
24                ],
25                focusable: false, // focus 불가능 설정
26
27            },
28            isCnslrAliasNmDuplicate: { // 아이디 중복 체크 검증
29                rules: [
30                    {
31                        test: (value) => value === false, // 값이 false여야 통과
32                        message: "상담사 별칭 중복확인을 해주세요.",
33                    },
34                ],
35                focusable: false, // focus 불가능 설정
36
37            },
38            userPswdNm: { // 비밀번호 검증
39                rules: [
40                    { test: (value) => !!value, message: "비밀번호를 입력해주세요." }, // 값이 존재하는지 확인
41                    { test: (value) => /^(?=.*[A-Za-z])(?=.*\d)(?=.*[@$!%*#?&^~])[A-Za-z\d@$!%*#?&^~]{9,24}$/.test(value), message: "비밀번호는 9~24자의 문자, 숫자, 특수문자를 포함해야 합니다." }, // 형식 검증
42                ],
43            },
44            existingUserPswdNm: { // 기존비밀번호
45                rules: [
46                    { test: (value) => !!value, message: "비밀번호를 입력해주세요." }, // 값이 존재하는지 확인
47                    { test: (value) => /^(?=.*[A-Za-z])(?=.*\d)(?=.*[@$!%*#?&^~])[A-Za-z\d@$!%*#?&^~]{9,24}$/.test(value), message: "비밀번호는 9~24자의 문자, 숫자, 특수문자를 포함해야 합니다." }, // 형식 검증
48                ],
49            },
50            userPswdNmConfirm: { // 비밀번호 확인 검증
51                rules: [
52                    { test: (value, formData) => !!value, message: "비밀번호 확인을 확인해 주세요." }, // 값이 존재하는지 확인
53                    { test: (value, formData) => value === formData.userPswdNm, message: "비밀번호 확인이 비밀번호와 일치하지 않습니다." }, // 비밀번호와 동일한지 확인
54                ],
55            },
56            // emailId: { // 이메일 ID 검증
57            //     rules: [
58            //         { test: (value) => !!value, message: "이메일은 필수 입력 항목입니다." },
59            //         {
60            //             test: (value) => /^[a-zA-Z0-9][a-zA-Z0-9._%+-]*$/.test(value),
61            //             message: "이메일 ID 형식을 확인해 주세요."
62            //         },
63            //         {
64            //             test: (value) => !/\.{2,}/.test(value),
65            //             message: "이메일 ID에 연속된 점(.)을 사용할 수 없습니다."
66            //         }
67            //     ]
68            // },
69            // emailDomain: { // 이메일 도메인 검증
70            //     rules: [
71            //         { test: (value) => !!value, message: "이메일은 필수 입력 항목입니다." }, // 값이 존재하는지 확인
72            //         { test: (value) => /^[a-z0-9.-]+\.[a-z]{2,}$/.test(value), message: "도메인 형식을 확인해 주세요." },
73            //         { test: (value) => !/^\.|\.$/.test(value), message: "도메인은 .으로 시작하거나 끝날 수 없습니다." }
74            //     ],
75            // },
76            // userEmlAddr: { // 이메일 전체 주소 검증
77            //     rules: [
78            //         { test: (value) => !!value, message: "이메일은 필수 입력 항목입니다." }, // 값이 존재하는지 확인
79            //         {
80            //             test: (value) => /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/.test(value),
81            //             message: "이메일 형식을 확인해 주세요."
82            //         }, // 이메일 형식 검증
83            //         {
84            //             test: (value) => value.length <= 320,
85            //             message: "이메일은 320자를 초과할 수 없습니다."
86            //         } // 길이 검증
87            //     ],
88            // },
89
90            userGndrCd: { // 성별 선택 검증
91                rules: [
92                    { test: (value) => !!value, message: "성별은 필수 항목입니다.." },
93                ],
94            },
95            ltrRcptnYn: { // 휴대전화수신
96                rules: [
97                    {
98                        test: (value) => value === "Y", // 값이 false여야 통과
99                        message: "휴대전화 수신동의는 필수 항목입니다.",
100                    },
101                ],
102            },
103            requiredAgree: { // 필수동의커스텀
104                rules: [
105                    { test: (value) => value === "Y", message: "필수 입력 항목입니다." },
106                ],
107            },
108            withdrawalAgree: { // 필수동의커스텀
109                rules: [
110                    { test: (value) => value === "Y", message: "필수 입력 항목입니다." },
111                ],
112            },
113            userNm: { // 필수동의커스텀
114                rules: [
115                    { test: (value) => !!value, message: "성명은 필수 입력 항목입니다." },
116                ],
117            },
118            // userMblTelno: { // 필수동의커스텀
119            //     rules: [
120            //         { test: (value) => !!value, message: "필수 입력 항목을 확인해주세요." },
121            //     ],
122            // },
123            mbrWhdwlRsnCd: { // 회원탈퇴사유코드
124                rules: [
125                    { test: (value) => !!value, message: "회원탈퇴사유는 필수 항목입니다." },
126                ],
127            },
128            mbrWhdwlDtlCn: { // 회원탈퇴사유상세내용
129                rules: [
130                    { test: (value) => !!value, message: "상세사유는 필수 입력값입니다." }, // 값이 존재하는지 확인
131                    { test: (value) => value.length >= 10, message: "상세사유는 최소 10자 이상이어야 합니다." },
132                    { test: (value) => value.length <= 1000, message: "상세사유는 최대 1000자 이내여야 합니다." },
133                ],
134            },
135            userInstTelno: { // 내선번호
136                rules: [
137                    { test: (value) => value.length >= 9, message: "내선번호는 최소 9자 이상이어야 합니다." },
138                ],
139            },
140            userBrdt: { // 회원탈퇴사유상세내용
141                rules: [
142                    { test: (value) => !!value, message: "생년월일은 필수 입력 항목입니다." },
143                ],
144            },
145
146            dscsnFlds: { // 카카오톡 상담 id
147                rules: [
148                    { test: (value) => !!value, message: "상담분야는 필수 입력 항목입니다." },
149                ],
150            },
151            katalkCnslrId: { // 카카오톡 상담 id
152                rules: [
153                    { test: (value) => !!value, message: "카카오톡 상담ID는 필수 입력 항목입니다." },
154                    {
155                        test: (value) => !/\s/.test(value),
156                        message: "공백은 입력할 수 없습니다.",
157                    },
158                ],
159            },
160            cnslrAliasNm: { // 상담사 별칭
161                rules: [
162                    {
163                        // 한글, 영문, 숫자만 입력 가능
164                        test: (value) => /^[가-힣a-zA-Z0-9]+$/.test(value),
165                        message: "한글, 영문, 숫자만 입력 가능합니다.",
166                    },
167                    {
168                        // 길이 제한: 최대 40자
169                        test: (value) => value.length <= 40,
170                        message: "최대 40자까지 입력 가능합니다.",
171                    },
172                    { test: (value) => !!value, message: "상담사 별칭은 필수 입력 항목입니다." },
173                    {
174                        test: (value) => !/\s/.test(value),
175                        message: "공백은 입력할 수 없습니다.",
176                    },
177                ],
178            },
179
180            userExplnCn: { // 카카오톡 상담 id
181                rules: [
182                    { test: (value) => !!value, message: "소개글은 필수 입력 항목입니다." },
183                ],
184            },
185            userInstCd: { // 카카오톡 상담 id
186                rules: [
187                    { test: (value) => !!value, message: "소속기관은 필수 입력 항목입니다." },
188                ],
189            },
190            discussionField: { // 배열 검증
191                rules: [
192                    {
193                        test: (value) => value && value.length > 0,
194                        message: "하나 이상의 항목을 선택해야 합니다.",
195                    },
196                ],
197            },
198            checkBoxName: { // 배열 검증
199                rules: [
200                    {
201                        test: (value) => value && value.length > 0,
202                        message: "하나 이상의 항목을 선택해야 합니다.",
203                    },
204                ],
205            },
206
207        },
208    }
209
210
211    return {
212        RULES : RULES
213    };
214}();

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.