PageSourceSearch

https://www.bigdata-transportation.kr/js/com/validationUtil.js?v=2.1.0_RELEASE

js bigdata-transportation.kr collected 2026-10-07 02:47:24 UTC 25,590 bytes, 649 lines download raw bytes

1const cusValidation = {
2    regExp: {
3        "replaceChar": /[!@#$%^&+=]/gi,
4        "replacePwdChar": /[~\*\()\-_'\;<>\/.\`:\"\\,\[\]?|{}]/gi,
5        "replaceFullSpecialChar": /[~!@\#$%^&*\()\-=+_'\;<>0-9\/.\`:\"\\,\[\]?|{}]/gi,
6        "replaceBlank": /[\s]/g,
7        "replaceEngChar": /[a-zA-Z]/gi,
8        "replaceNotInt": /[^0-9]/gi,
9        "email": /^([\w\.\_\-])*[a-zA-Z0-9]+([\w\.\_\-])*([a-zA-Z0-9])+([\w\.\_\-])+@([a-zA-Z0-9]+\.)+[a-zA-Z0-9]{2,8}$/,
10        "phnNumbr": /^(?:(010\d{4})|(01[1|6|7|8|9]\d{3,4}))(\d{4})$/,
11        "passwd": /^(?=.*[A-Za-z])(?=.*\d)(?=.*[$@$!%*#?&])[A-Za-z\d$@$!%*#?&]{8,14}$/,
12        "name": /^[ㄱ-ㅎ|가-힣a-z|A-Z]+$/,
13        "birth": /^(19\d{2}|20\d{2})(0[0-9]|1[0-2])(0[1-9]|[1-2][0-9]|3[0-1])$/,
14        "continu":/(\w)\1\1/,
15    },
16
17    validateLoginEmail: function() {
18        jQuery('p.login-email-p.complete-msg').hide();
19        $("#dup-check-btn").prop("disabled", true);
20
21        $("#login-email").val($("#login-email").val().replace(this.regExp.replaceBlank, ""));
22
23        const emailRegExp = this.regExp.email;
24        if (!isFillValue($("#login-email")) || !emailRegExp.test($.trim($("#login-email").val()))) {
25            jQuery('#ERROR_INVALID_LOGIN_EMAIL_FMT').show();
26            $("#login-email").focus();
27            return false;
28        }
29
30        $("#dup-check-btn").prop("disabled", false);
31        return true;
32    },
33
34    validateCertfEmail: function() {
35        jQuery('p.certf-email-p.complete-msg.error').hide();
36
37        $("#certf-email").val($("#certf-email").val().replace(this.regExp.replaceBlank, ""));
38
39        const emailRegExp = this.regExp.email;
40        if(!isFillValue($("#certf-email")) || !emailRegExp.test($.trim($("#certf-email").val()))) {
41            jQuery('#ERROR_INVALID_CERTF_EMAIL_FMT').show();
42            $("#certf-email").focus();
43            return false;
44        }
45
46        return true;
47    },
48
49    validatePhnNumbr: function() {
50        jQuery('p.phn-numbr-p.complete-msg').hide();
51        jQuery('#ERROR_INVALID_PHN_NUMBR_FMT').hide();
52        $("#phn-numbr").val($("#phn-numbr").val().replace(this.regExp.replaceNotInt, ""));
53
54        if ($("#phn-numbr").val().length > 11) {
55            $("#phn-numbr").val($("#phn-numbr").val().substr(0, 11));
56        }
57
58        const phnNumbrRegExp = this.regExp.phnNumbr;
59        if (!isFillValue($("#phn-numbr")) || !phnNumbrRegExp.test($.trim($("#phn-numbr").val()))) {
60            jQuery('#ERROR_INVALID_PHN_NUMBR_FMT').show();
61            $("#phn-numbr").focus();
62            return false;
63        }
64
65        $("#dup-checkPhn-btn").prop("disabled", false);
66        return true;
67    },
68
69    validatePasswd: function() {
70        jQuery('#ERROR_INVALID_PASSWD_FMT').hide();
71        jQuery('#ERROR_INVALID_PASSWD_CONTINU').hide();
72        jQuery('#ERROR_INVALID_PASSWD_ID').hide();
73        jQuery('#ERROR_INVALID_PASSWD_NAME').hide();
74        jQuery('#ERROR_INVALID_PASSWD_OLD').hide();
75        var passwd = $.trim($("#passwd").val()).replace(this.regExp.replaceBlank, "");
76        const result = ComUtils.callAjax("/checkNewPwd", JSON.stringify({rePasswd: passwd}));
77
78        const passwdRegExp = this.regExp.passwd;
79        if (!isFillValue($("#passwd")) || !result) {
80            jQuery('#ERROR_INVALID_PASSWD_FMT').show();
81            $("#passwd").focus();
82            return false;
83        }
84        return this.validatePasswdOthers();
85//        return true;
86    },
87    validateKeyword: function (){
88        jQuery('#ERROR_INVALID_KEYWORD_FMT').hide();
89        let prdtKwd = [
90            $.trim($("#kwd01").val()),
91            $.trim($("#kwd02").val()),
92            $.trim($("#kwd03").val()),
93            $.trim($("#kwd04").val())
94        ];
95        let strList = ['#kwd01','#kwd02','#kwd03','#kwd04']
96        let reg = /[`~!@#$%^&*|\\\'\";:\/?]/gi;
97        let length = 0;
98
99        for(let i=0; i<4; i++){
100            if(prdtKwd[i]==="")
101                continue;
102
103            if(reg.test(prdtKwd[i])){
104               /* 특수문자만 포함 x */
105                jQuery('#ERROR_INVALID_KEYWORD_FMT').show();
106                return false;
107            }
108
109            length += prdtKwd[i].length;
110            if(length > 48){
111                jQuery('#ERROR_INVALID_KEYWORD_FMT').hide();
112                jQuery('#ERROR_INVALID_KEYWORD_LENGTH_FMT').show();
113                $(strList[i]).focus();
114                return false;
115            }
116        }
117        return true;
118    },
119
120    validateRePasswd: function() {
121        $("#ERROR_NON_MATCH_RE_PASSWD").hide();
122
123        const passwd = $.trim($("#passwd").val());
124        const rePasswd = $.trim($("#re-passwd").val());
125        if (passwd !== rePasswd) {
126            $("#ERROR_NON_MATCH_RE_PASSWD").show();
127            $("#re-passwd").focus();
128            return false;
129        }
130
131        return true;
132    },
133
134    validateCnsmNm: function() {
135        jQuery('#ERROR_INVALID_CNSM_NM_FMT').hide();
136
137        $("#cnsm-nm").val($("#cnsm-nm").val().replace(this.regExp.replaceFullSpecialChar, "").replace(this.regExp.replaceBlank, ""));
138
139        const nameRegExp = this.regExp.name;
140        if (!isFillValue($("#cnsm-nm")) || !nameRegExp.test($.trim($("#cnsm-nm").val()))) {
141            jQuery('#ERROR_INVALID_CNSM_NM_FMT').show();
142            $("#cnsm-nm").focus();
143            return false;
144        }
145
146        return true;
147    },
148
149    validateOrgzNm: function() {
150        jQuery('#ERROR_INVALID_INSTT_FMT').removeClass("error");
151
152        $("#orgz-nm").val($("#orgz-nm").val().replace(this.regExp.replaceFullSpecialChar, "").replace(this.regExp.replaceBlank, ""));
153
154        const nameRegExp = this.regExp.name;
155        if (!isFillValue($("#orgz-nm")) || !nameRegExp.test($.trim($("#orgz-nm").val()))) {
156            jQuery('#ERROR_INVALID_INSTT_FMT').addClass("error");
157            $("#orgz-nm").focus();
158            return false;
159        }
160
161        return true;
162    },
163
164    validateDprtNm: function() {
165        jQuery('#ERROR_INVALID_INSTT_FMT').removeClass("error");
166
167        $("#dprt-nm").val($("#dprt-nm").val().replace(this.regExp.replaceFullSpecialChar, "").replace(this.regExp.replaceBlank, ""));
168
169        const nameRegExp = this.regExp.name;
170        if (!isFillValue($("#dprt-nm")) || !nameRegExp.test($.trim($("#dprt-nm").val()))) {
171            jQuery('#ERROR_INVALID_INSTT_FMT').addClass("error");
172            $("#dprt-nm").focus();
173            return false;
174        }
175
176        return true;
177    },
178
179    validateOrgzType: function() {
180        jQuery('#ERROR_INVALID_ORGZ_TYPE').removeClass("error");
181        if($("select[name='orgz-type']").val() === ''){
182            jQuery('#ERROR_INVALID_ORGZ_TYPE').addClass("error");
183            $("select[name='orgz-type']").focus();
184            return false;
185        }
186        
187        return true;
188    },
189
190    validateBirth: function() {
191        jQuery("#ERROR_INVALID_BIRTH_FMT").hide();
192
193        $("#birth").val($("#birth").val().replace(this.regExp.replaceNotInt, ""));
194
195        if ($("#birth").val().length > 8) {
196            $("#birth").val($("#birth").val().substr(0, 8));
197        }
198
199        const birthRegExp = this.regExp.birth;
200        if (!isFillValue($("#birth")) || !birthRegExp.test($.trim($("#birth").val()))) {
201            jQuery("#ERROR_INVALID_BIRTH_FMT").show();
202            $("#birth").focus();
203            return false;
204        }
205
206        return true;
207    },
208
209    validateBsnsNm: function() {
210        $("#bsns-nm").val($("#bsns-nm").val().replace(this.regExp.replaceChar, ""));
211
212        if (!isFillValue($("#bsns-nm"))) {
213            $("#bsns-nm").focus();
214            return false;
215        }
216
217        return true;
218    },
219
220    validateBsnsRegistNumbr: function() {
221        jQuery(".bsns-regist-numbr-p").hide();
222
223        $("#bsns-regist-numbr").val($("#bsns-regist-numbr").val().replace(this.regExp.replaceNotInt, ""));
224
225        if ($("#bsns-regist-numbr").val().length > 10) {
226            $("#bsns-regist-numbr").val($("#bsns-regist-numbr").val().substr(0, 10));
227        }
228
229        if (!isFillValue($("#bsns-regist-numbr"))) {
230            jQuery("#ERROR_INVALID_BSNS_REGIST_NUMBR").show();
231            $("#bsns-regist-numbr").focus();
232            return false;
233        }
234
235        return true;
236    },
237
238    validateBsnsCndt: function() {
239        jQuery("#ERROR_INVALID_BSNS_CNDT").hide();
240
241        $("#bsns-cndt").val($("#bsns-cndt").val().replace(this.regExp.replaceChar, ""));
242
243        if (!isFillValue($("#bsns-cndt"))) {
244            jQuery("#ERROR_INVALID_BSNS_CNDT").show();
245            $("#bsns-cndt").focus();
246            return false;
247        }
248
249        return true;
250    },
251
252    validateBsnsSectors: function() {
253        jQuery("#ERROR_INVALID_BSNS_SECTORS").hide();
254
255        $("#bsns-sectors").val($("#bsns-sectors").val().replace(this.regExp.replaceChar, ""));
256
257        if (!isFillValue($("#bsns-sectors"))) {
258            jQuery("#ERROR_INVALID_BSNS_SECTORS").show();
259            $("#bsns-sectors").focus();
260            return false;
261        }
262
263        return true;
264    },
265
266    validateRepresntNm: function() {
267        jQuery("#ERROR_INVALID_REPRESNT_NM_FMT").hide();
268
269        $("#represnt-nm").val($("#represnt-nm").val().replace(this.regExp.replaceFullSpecialChar, "").replace(this.regExp.replaceBlank, ""));
270
271        const nameRegExp = this.regExp.name;
272        if (!isFillValue($("#represnt-nm")) || !nameRegExp.test($.trim($("#represnt-nm").val()))) {
273            jQuery("#ERROR_INVALID_REPRESNT_NM_FMT").show();
274            $("#represnt-nm").focus();
275            return false;
276        }
277
278        return true;
279    },
280
281    validateBsnsNumbr: function() {
282        jQuery('#ERROR_INVALID_BSNS_NUMBR_FMT').hide();
283
284        $("#bsns-numbr").val($("#bsns-numbr").val().replace(this.regExp.replaceNotInt, ""));
285
286        if ($("#bsns-numbr").val().length > 11) {
287            $("#bsns-numbr").val($("#bsns-numbr").val().substr(0, 11));
288        }
289
290        const phnNumbrRegExp = this.regExp.phnNumbr;
291        if (!isFillValue($("#bsns-numbr")) || !phnNumbrRegExp.test($.trim($("#bsns-numbr").val()))) {
292            jQuery('#ERROR_INVALID_BSNS_NUMBR_FMT').show();
293            $("#bsns-numbr").focus();
294            return false;
295        }
296
297        return true;
298    },
299
300    validateBsnsEmail: function() {
301        jQuery('#ERROR_INVALID_BSNS_EMAIL_FMT').hide();
302
303        $("#bsns-email").val($("#bsns-email").val().replace(this.regExp.replaceBlank, ""));
304
305        const emailRegExp = this.regExp.email;
306        if (!isFillValue($("#bsns-email")) || !emailRegExp.test($.trim($("#bsns-email").val()))) {
307            jQuery('#ERROR_INVALID_BSNS_EMAIL_FMT').show();
308            $("#bsns-email").focus();
309            return false;
310        }
311
312        return true;
313    },
314
315    validateSttlmOffcNm: function() {
316        jQuery('#ERROR_INVALID_STTLM_OFFC_NM_FMT').hide();
317
318        $("#sttlm-offc-nm").val($("#sttlm-offc-nm").val().replace(this.regExp.replaceFullSpecialChar, "").replace(this.regExp.replaceBlank, ""));
319
320        const nameRegExp = this.regExp.name;
321        if (!isFillValue($("#sttlm-offc-nm")) || !nameRegExp.test($.trim($("#sttlm-offc-nm").val()))) {
322            jQuery('#ERROR_INVALID_STTLM_OFFC_NM_FMT').show();
323            $("#sttlm-offc-nm").focus();
324            return false;
325        }
326
327        return true;
328
329    },
330
331    validateSttlmOffcNumbr: function() {
332        jQuery('#ERROR_INVALID_STTLM_OFFC_NUMBR_FMT').hide();
333
334        $("#sttlm-offc-numbr").val($("#sttlm-offc-numbr").val().replace(this.regExp.replaceNotInt, ""));
335
336        if ($("#sttlm-offc-numbr").val().length > 11) {
337            $("#sttlm-offc-numbr").val($("#sttlm-offc-numbr").val().substr(0, 11));
338        }
339
340        const phnNumbrRegExp = this.regExp.phnNumbr;
341        if (!isFillValue($("#sttlm-offc-numbr")) || !phnNumbrRegExp.test($.trim($("#sttlm-offc-numbr").val()))) {
342            jQuery('#ERROR_INVALID_STTLM_OFFC_NUMBR_FMT').show();
343            $("#sttlm-offc-numbr").focus();
344            return false;
345        }
346
347        return true;
348    },
349
350    validateSttlmOffcEmail: function() {
351        jQuery('#ERROR_INVALID_STTLM_OFFC_EMAIL_FMT').hide();
352
353        $("#sttlm-offc-email").val($("#sttlm-offc-email").val().replace(this.regExp.replaceBlank, ""));
354
355        const emailRegExp = this.regExp.email;
356        if (!isFillValue($("#sttlm-offc-email")) || !emailRegExp.test($.trim($("#sttlm-offc-email").val()))) {
357            jQuery('#ERROR_INVALID_STTLM_OFFC_EMAIL_FMT').show();
358            $("#sttlm-offc-email").focus();
359            return false;
360        }
361
362        return true;
363    },
364
365    validateTaxInvcEmail: function() {
366        jQuery('#ERROR_INVALID_TAX_INVC_EMAIL_FMT').hide();
367
368        $("#tax-invc-email").val($("#tax-invc-email").val().replace(this.regExp.replaceBlank, ""));
369
370        const emailRegExp = this.regExp.email;
371        if (!isFillValue($("#tax-invc-email")) || !emailRegExp.test($.trim($("#tax-invc-email").val()))) {
372            jQuery('#ERROR_INVALID_TAX_INVC_EMAIL_FMT').show();
373            $("#tax-invc-email").focus();
374            return false;
375        }
376
377        return true;
378    },
379
380    validateDpstAcctHldr: function() {
381        jQuery('.dpst-acct-p').hide();
382
383        $("#dpst-acct-hldr").val($("#dpst-acct-hldr").val().replace(this.regExp.replaceFullSpecialChar, "").replace(this.regExp.replaceBlank, ""));
384
385        const nameRegExp = this.regExp.name;
386        if (!isFillValue($("#dpst-acct-hldr")) || !nameRegExp.test($.trim($("#dpst-acct-hldr").val()))) {
387            jQuery('#ERROR_INVALID_DPST_ACCT_HLDR_FMT').show();
388            $("#dpst-acct-hldr").focus();
389            return false;
390        }
391
392        return true;
393    },
394
395    /**
396     * 인증번호 발송
397     * @param url
398     * @param sendData
399     */
400    sendAuthCode: function(url, sendData) {
401        /* 개발용 임시 코드(인증코드 반환) */
402        let authCode;
403        /* //개발용 임시 코드(인증코드 반환) */
404
405        jQuery.ajax({
406            'url': url,
407            'type': "POST",
408            'data': sendData,
409            'dataType': "json",
410            'async': false,
411            'success': function (data, status, jqXHR) {
412                if (data.statusCode === "S0000") {
413                    $("#auth-code").prop("disabled", false).focus();
414                    $("#auth-chk-btn").prop("disabled", false).addClass("btn-red");
415                    jQuery('p.login-email-p.complete-msg').hide();
416                    jQuery('p.auth-p.complete-msg').hide();
417                    jQuery('p.cnsm-nm-p.complete-msg').hide();
418                    jQuery('p.certf-email-p.complete-msg').hide();
419                    jQuery('p.phn-numbr-p.complete-msg').hide();
420                    jQuery('#SUCCESS_LOGIN_EMAIL').show();
421                    jQuery('#SUCCESS_SEND_AUTH_CODE').show();
422                    jQuery('#auth-time').show();
423
424                    $main.prop.countInterval = $main.util.startCountDown(30 * 60, $(".auth-time .mn"), $(".auth-time .sc"));
425                    /* 개발용 임시 코드(인증코드 반환) */
426                    authCode = data.body;
427                    /* //개발용 임시 코드(인증코드 반환) */
428                }
429            },
430            'error': function (err) {
431                jQuery('p.login-email-p.complete-msg').hide();
432                jQuery('p.name-p.complete-msg.error').hide();
433                jQuery('p.certf-email-p.complete-msg.error').hide();
434                jQuery('p.phn-numbr-p.complete-msg.error').hide();
435                if (err.responseJSON.statusCode == 'E0001') {
436                    jQuery('#ERROR_INVALID_CERTF_EMAIL_FMT').show();
437                } else if (err.responseJSON.statusCode == 'E0002') {
438                    jQuery('#ERROR_NOT_FOUND_LOGIN_EMAIL').show();
439                    jQuery('#ERROR_NOT_FOUND_CNSM_NM').show();
440                    jQuery('#ERROR_NOT_FOUND_CERTF_EMAIL').show();
441                } else if (err.responseJSON.statusCode == 'E0003') {
442                    jQuery('#ERROR_NOT_FOUND_LOGIN_EMAIL').show();
443                    jQuery('#ERROR_NOT_FOUND_CNSM_NM').show();
444                    jQuery('#ERROR_NOT_FOUND_PHN_NUMBR').show();
445                } else if (err.responseJSON.statusCode == 'E0004') {
446                    jQuery('#ERROR_DUPLICATE_LOGIN_EMAIL').show();
447                } else if (err.responseJSON.statusCode == 'E0100') {
448                    // 휴면 계정: 비밀번호 변경 전 휴면 해제로 유도
449                    alert("휴면 계정입니다.\n휴면 해제 후 비밀번호를 변경할 수 있습니다.");
450                    location.href = "/sleep";
451                } else {
452                    alert(err.responseJSON.body);
453                }
454            }
455        });
456
457        /* 개발용 임시 코드(인증코드 반환) */
458        return authCode;
459        /* //개발용 임시 코드(인증코드 반환) */
460    },
461
462    /**
463     * 인증번호 확인
464     * @param url
465     * @param sendData
466     */
467    checkAuthCode: function(url, sendData) {
468        let result = false;
469        jQuery.ajax({
470            'url': url,
471            'type': "POST",
472            'data': sendData,
473            'dataType': "json",
474            'async': false,
475            'success': function (data, status, jqXHR) {
476                if (data.statusCode === "S0000") {
477                    jQuery('p.login-email-p.complete-msg').hide();
478                    jQuery('#SUCCESS_LOGIN_EMAIL').show();
479
480                    if (sendData.typeCode === "searchId") { // 아이디 찾기 시,
481                        location.href = "/searchIdResult";
482                        result = true;
483                    } else if (sendData.typeCode === "searchPw") { // 비밀번호 찾기 시,
484                        location.href = "/changePw";
485                    } else if (sendData.typeCode === "sleep") {
486                        alert("휴면 계정 상태 해제에 성공했습니다.\n다시 로그인 해주세요.");
487                        location.href = "/login";
488                    }
489                    result = true; // 공통 및 로그인 시,
490                } else if (data.statusCode === "S0301") {
491                    // [25.07.30] 추가
492                    alert("변경된 약관이 있습니다.");
493                    location.href = "/social/reTerm";
494                }
495            },
496            'error': function (err) {
497                jQuery('p.name-p.complete-msg.error').hide();
498                jQuery('p.certf-email-p.complete-msg.error').hide();
499                jQuery('p.phn-numbr-p.complete-msg.error').hide();
500                jQuery('p.auth-p.complete-msg').hide();
501                if (err.responseJSON.statusCode == 'E1001') {
502                    jQuery('#ERROR_INVALID_AUTH_CODE').show();
503                } else if (err.responseJSON.statusCode == 'E1002') {
504                    jQuery('#ERROR_NOT_FOUND_CNSM_NM').show();
505                    jQuery('#ERROR_NOT_FOUND_CERTF_EMAIL').show();
506                } else if (err.responseJSON.statusCode == 'E1003') {
507                    jQuery('#ERROR_NOT_FOUND_CNSM_NM').show();
508                    jQuery('#ERROR_NOT_FOUND_PHN_NUMBR').show();
509                } else {
510                    alert(err.responseJSON.body);
511                }
512                result = false;
513            }
514        });
515
516        return result;
517    },
518    
519    korToEng: function(src){
520        var res = "";
521        if (src.length == 0)
522            return res;
523    
524        for (var i = 0; i < src.length; i++) {
525            var ch = src.charAt(i);
526            var nCode = ch.charCodeAt(0);
527            var nCho = CHO_DATA.indexOf(ch), nJung = JUNG_DATA.indexOf(ch), nJong = JONG_DATA.indexOf(ch);
528            var arrKeyIndex = [-1, -1, -1, -1, -1];
529    
530            if (0xac00 <= nCode && nCode <= 0xd7a3) {
531                nCode -= 0xac00;
532                arrKeyIndex[0] = Math.floor(nCode / (21 * 28));         // 초성
533                arrKeyIndex[1] = Math.floor(nCode / 28) % 21;           // 중성
534                arrKeyIndex[3] = nCode % 28 - 1;                        // 종성
535            } else if (nCho != -1)          // 초성 자음
536                arrKeyIndex[0] = nCho;
537            else if (nJung != -1)           // 중성
538                arrKeyIndex[1] = nJung;
539            else if (nJong != -1)           // 종성 자음
540                arrKeyIndex[3] = nJong;
541            else                            // 한글이 아님
542                res += ch;
543    
544            // 실제 Key Index로 변경. 초성은 순서 동일
545            if (arrKeyIndex[1] != -1) {
546                if (arrKeyIndex[1] == 9) {                  // ㅘ
547                    arrKeyIndex[1] = 27;
548                    arrKeyIndex[2] = 19;
549                } else if (arrKeyIndex[1] == 10) {          // ㅙ
550                    arrKeyIndex[1] = 27;
551                    arrKeyIndex[2] = 20;
552                } else if (arrKeyIndex[1] == 11) {          // ㅚ
553                    arrKeyIndex[1] = 27;
554                    arrKeyIndex[2] = 32;
555                } else if (arrKeyIndex[1] == 14) {          // ㅝ
556                    arrKeyIndex[1] = 29;
557                    arrKeyIndex[2] = 23;
558                } else if (arrKeyIndex[1] == 15) {          // ㅞ
559                    arrKeyIndex[1] = 29;
560                    arrKeyIndex[2] = 24;
561                } else if (arrKeyIndex[1] == 16) {          // ㅟ
562                    arrKeyIndex[1] = 29;
563                    arrKeyIndex[2] = 32;
564                } else if (arrKeyIndex[1] == 19) {          // ㅢ
565                    arrKeyIndex[1] = 31;
566                    arrKeyIndex[2] = 32;
567                } else {
568                    arrKeyIndex[1] = KOR_KEY.indexOf(JUNG_DATA.charAt(arrKeyIndex[1]));
569                    arrKeyIndex[2] = -1;
570                }
571            }
572            if (arrKeyIndex[3] != -1) {
573                if (arrKeyIndex[3] == 2) {                  // ㄳ
574                    arrKeyIndex[3] = 0
575                    arrKeyIndex[4] = 9;
576                } else if (arrKeyIndex[3] == 4) {           // ㄵ
577                    arrKeyIndex[3] = 2;
578                    arrKeyIndex[4] = 12;
579                } else if (arrKeyIndex[3] == 5) {           // ㄶ
580                    arrKeyIndex[3] = 2;
581                    arrKeyIndex[4] = 18;
582                } else if (arrKeyIndex[3] == 8) {           // ㄺ
583                    arrKeyIndex[3] = 5;
584                    arrKeyIndex[4] = 0;
585                } else if (arrKeyIndex[3] == 9) {           // ㄻ
586                    arrKeyIndex[3] = 5;
587                    arrKeyIndex[4] = 6;
588                } else if (arrKeyIndex[3] == 10) {          // ㄼ
589                    arrKeyIndex[3] = 5;
590                    arrKeyIndex[4] = 7;
591                } else if (arrKeyIndex[3] == 11) {          // ㄽ
592                    arrKeyIndex[3] = 5;
593                    arrKeyIndex[4] = 9;
594                } else if (arrKeyIndex[3] == 12) {          // ㄾ
595                    arrKeyIndex[3] = 5;
596                    arrKeyIndex[4] = 16;
597                } else if (arrKeyIndex[3] == 13) {          // ㄿ
598                    arrKeyIndex[3] = 5;
599                    arrKeyIndex[4] = 17;
600                } else if (arrKeyIndex[3] == 14) {          // ㅀ
601                    arrKeyIndex[3] = 5;
602                    arrKeyIndex[4] = 18;
603                } else if (arrKeyIndex[3] == 17) {          // ㅄ
604                    arrKeyIndex[3] = 7;
605                    arrKeyIndex[4] = 9;
606                } else {
607                    arrKeyIndex[3] = KOR_KEY.indexOf(JONG_DATA.charAt(arrKeyIndex[3]));
608                    arrKeyIndex[4] = -1;
609                }
610            }
611    
612            for (var j = 0; j < 5; j++) {
613                if (arrKeyIndex[j] != -1)
614                    res += ENG_KEY.charAt(arrKeyIndex[j]);
615            }
616        }
617        return res;
618    },
619    
620    validatePasswdOthers: function(){
621        const pw = $.trim($("#passwd").val()).replace(this.regExp.replaceBlank, "");
622        if(pw=='') return true;
623        const oriPw = $.trim($("#ori-passwd").val()).replace(this.regExp.replaceBlank, "");
624        const id = ($('#login-email').val()||'').split('@')[0];
625        const nm = (this.korToEng($('#cnsm-nm').val()||''));
626        if(this.regExp.continu.test(pw)){
627            jQuery('#ERROR_INVALID_PASSWD_CONTINU').show(); //err문구
628            return false;
629        }
630        if(id!=''&&pw.indexOf(id)>-1){
631            jQuery('#ERROR_INVALID_PASSWD_ID').show(); //err문구
632            return false;
633        }
634        if(nm!=''&&pw.search(nm)>-1){
635            jQuery('#ERROR_INVALID_PASSWD_NAME').show(); //err문구
636            return false;
637        }
638        if(oriPw!=''&&oriPw==pw){
639            jQuery('#ERROR_INVALID_PASSWD_OLD').show(); //err문구
640            return false;
641        }
642        jQuery('#ERROR_INVALID_PASSWD_FMT').hide();
643        jQuery('#ERROR_INVALID_PASSWD_CONTINU').hide();
644        jQuery('#ERROR_INVALID_PASSWD_ID').hide();
645        jQuery('#ERROR_INVALID_PASSWD_NAME').hide();
646        jQuery('#ERROR_INVALID_PASSWD_OLD').hide();
647        return true;
648    },
649}

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.